先来看这样一段代码
详情类依赖动物主类
详情类
测试类
运行结果
可以看到,我们的动物类animal在定义构造器时,需要传入一个animalDetail类型的对象,这就形成了对象间的依赖关系,在没有引入ioc容器(控制反转)这个概念时,我们只能像在测试类中见到的,手动创建一个animalDetail的对象进去,这样操作不仅需要我们手动的维护对象的声明周期,还加大了代码量
我们新建一个springboot项目工程
1.创建动物类,动物详情类2.在测试单元编写测试代码
运行结果
解释说明
1.和没有使用框架前不同,我们需要在实体类里加入注解@Component来告诉容器这是一个需要被管理的bean
(两个都需要加)
2.将bean从容器中注入到当前类,这里使用@Autowired注解,这一步操作也就是前文提到的控制反转 - 将对象的创建和生命周期从类本身交给容器管理
这样不仅减少了代码量,而且你在编写其他方法时如果需要该对象也不需要重复创建了,依赖注入的方式有很多种,可以找其他文章看