首页 > 其他分享 >IoC和DI入门案例

IoC和DI入门案例

时间:2023-01-31 10:11:32浏览次数:37  
标签:Code 入门 DI bookDao save IoC public View

IoC思路分析

1、管理什么 --Service和Dao

2、如何将被管理的对象告知IoC容器 --配置

3、被管理的对象交给IoC容器,如何获取到IoC容器 --接口

4、IoC容器得到后,如何从容器中获取bean --接口方法

5、使用Spring导入哪些坐标 --pom.xml

 

代码实现:

①导入Spring坐标

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.11.RELEASE</version>
        </dependency>
    </dependencies>

②定义Spring管理的类(接口)

1 public interface BookService {
2     public abstract void save();
3 }
View Code
public class BookServiceImpl implements BookService {
    
    private BookDao bookDao = new BookDaoImpl() ;

    public void save(){
        System.out.println("book service save...");
        bookDao.save();
    }

}
View Code

③创建Spring配置文件allicationContext.xml,用来管理bean

1 <!--    bean标签表示配置bean-->
2 <!--    id属性表示给bean起名字-->
3 <!--    class属性表示给bean定义类型-->
4 
5     <bean id="bookDao" class="wcx.dao.impl.BookDaoImpl"/>
6     <bean id="bookService" class="wcx.service.impl.BookServiceImpl">
7         
8      </bean>
View Code

④初始化IoC容器,通过容器获取bean

 1 public class App2 {
 2     public static void main(String[] args) {
 3          //获取IoC容器
 4         ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
 5         //获取bean
 6          BookDao bookDao = (BookDao) ctx.getBean("bookDao");
 7          bookDao.save();
 8 
 9          BookService bookService = (BookService) ctx.getBean("bookService");
10          bookService.save();
11 
12 
13     }
14 }
View Code

 

DI入门案例思路分析

1、基于IoC管理bean

2、Service中使用new形式创建的Dao对象不保留

3、Service中需要的Dao对象如何进入到Service中 setter方法

4、Service与Dao之间的关系如何描述 配置

 

代码实现:

①删除使用new创建的对象代码

②提供依赖对象对应的setter方法

 

 1 public class BookServiceImpl implements BookService {
 2     //删除业务层中用new方式产生的对象
 3     private BookDao bookDao ;
 4 
 5     public void save(){
 6         System.out.println("book service save...");
 7         bookDao.save();
 8     }
 9 //提供对应的set方法
10     public void setBookDao(BookDao bookDao) {
11         this.bookDao = bookDao;
12     }
13 }
View Code

 

③配置service与dao的关系

1  <bean id="bookService" class="wcx.service.impl.BookServiceImpl">
2 <!--    配置service与dao的关系-->
3         <!--property属性表示配置当前bean的属性
4         name表示配置中哪一个具体的属性
5         ref表示参照哪一个bean-->
6         <property name="bookDao" ref="bookDao"></property>
7 </bean>
View Code

 

 变量名之间的对应关系

 

标签:Code,入门,DI,bookDao,save,IoC,public,View
From: https://www.cnblogs.com/wahahahhh/p/17078015.html

相关文章

  • maven 入门
    一、Maven的基本概念Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。1.1、项目构建项目构建过程包括......
  • XML概述和快速入门
    XML概述概念:Extensible  Markup  Language 可扩展标记语言可扩展:标签都是自定义的。功能:存储数据配置文件在网络中传输xml与h......
  • Redis快速入门
    Redis快速入门,分两个客户端:Jedis和SpringDataRedis使用Jdedis1、引入依赖<!--jedis--><dependency>    <groupId>redis.clients</groupId>    <artifactId>jed......
  • drf从入门到精通 01
    今日内容详细学习资料个人博客:https,证书过期忽略 -https://www.liuqingzheng.top/cnblogs博客(高级部分的内容) -https://www.cnblogs.com/liuqingzheng知乎 -htt......
  • 洛谷oj题单【入门1】顺序结构-入门难度(Java)
    洛谷oj题单【入门1】顺序结构-入门难度(Java)来源:https://www.luogu.com.cn/training/100#problemsB2002Hello,World!publicclassMain{  publicstaticvoidmain......
  • redis注意点记录
    1、stringRedisTemplate 它的key和Value的序列化方式默认就是String类型2、stringRedisTemplate 操作Hash时:  2.1添加数据,在实体转换为HashMap需要将对象字段的......
  • Quarkus入门体验,22ms启动一个Web服务
    简介Quarkus是类似于SpringBoot的框架,可以方便大家进行Java开发。利用GraalVM的魔力,能更好的适应云原生的场景,极快的启动速度。创建项目在IDEA就直接有创建Quarkus项目......
  • Codeforces Round #847 (Div. 3) E. Vlad and a Pair of Numbers(位运算)
    https://codeforces.com/contest/1790/problem/E题目大意:两个正数a和b(a,b>0)。a⊕b=(a+b)/2,a⊕b==x。找到任何合适的a和b,或者不存在"-1"。inputCopy62510......
  • SQL练习:计算用户的平均次日留存率(DATEDIFF)
    用DATEDIFF简单的实现计算用户的平均次日留存率DATEDIFF函数介绍用于计算计算两个DATE,DATETIME或TIMESTAMP值之间的天数#用法DATEDIFF(date1,date2)#例子mysql>S......
  • 【Audition】循环背景音乐
    audition实现循环背景音乐自己实现起来时长是没问题,但是过渡部分处理地很差,总是可以听出明显的间隔后来查了网络,发现Audition可以自动实现这个功能先将音频拖入多轨......