现在先如图创建如下的Maven项目,在业务层和数据层分别写上对应的接口和实现类
在BookServiceImpl中创建一个BookDaoImpl对象,并调用里面的save()方法。
在测试类里面new一个bookservice的实现类,调用save()方法
输出如下图所示
要使用IOC容器要先做点准备
第一步
在pom.xml导入相关的依赖,爆红就刷新一下从中央仓库重新导入
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
第二步
在resources中新建——>XML配置文件——>Spring配置,上一步没有导好的话这里是不会有Spring的
第三步
在配置文件里面加入想要加入的bean,按照下面的方法写入的类的地址,让它成为一个bean对象,另外在外面要想使用这个对象,要使用标识的id来调用。
bean标签表示配置bean
class属性表示给bean定义类型
id属性给标示的bean起名字
第四步
想要使用IOC容器里面的bean对象要先获取IOC容器,再去获取bean
这里使用ApplicationContext方式加载XML.用这个借口的实现类去获取到定义的IOC容器
再用容器对象的方法得到一个bean对象,尝试调用里面的方法,成功调用
再来尝试获取一个bookService接口实现类的bean对象
输出入下图所示
以上就是IOC入门案例的全部
上面的案例中在BookServiceImpl里面还是有在new一个对象,为了达到解耦的效果,需要利用依赖注入,也就是下面的DI入门案例
在上面案例代码的基础上改动,不再采用new对象,改为使用set方法,这里需要的参数通过配置文件得到
在配置文件里面要让BookService得到一个bookdao就要在BookService的bean对象做修改
property标签表示配置当前bean的属性
name属性表示配置哪一个具体的属性
ref属性表示参照当前容器中的哪一个bean
上面有两个bookDao,但是含义是不一样的
name里面的对应
ref里面的对应
在测试类里面的代码不用改动,运行输出如下,正常运行