Spring IOC初了解 +简单时区介绍

77 阅读1分钟

先来看这样一段代码

详情类依赖动物主类 image.png

详情类

image.png

测试类

image.png 运行结果

image.png

可以看到,我们的动物类animal在定义构造器时,需要传入一个animalDetail类型的对象,这就形成了对象间的依赖关系,在没有引入ioc容器(控制反转)这个概念时,我们只能像在测试类中见到的,手动创建一个animalDetail的对象进去,这样操作不仅需要我们手动的维护对象的声明周期,还加大了代码量

我们新建一个springboot项目工程

1.创建动物类,动物详情类
2.在测试单元编写测试代码

image.png 运行结果

image.png

解释说明
1.和没有使用框架前不同,我们需要在实体类里加入注解@Component来告诉容器这是一个需要被管理的bean (两个都需要加) image.png 2.将bean从容器中注入到当前类,这里使用@Autowired注解,这一步操作也就是前文提到的控制反转 - 将对象的创建和生命周期从类本身交给容器管理

这样不仅减少了代码量,而且你在编写其他方法时如果需要该对象也不需要重复创建了,依赖注入的方式有很多种,可以找其他文章看

一些时区的拓展

中国采用的北京时间是东八区的标准时间,比世界标准时UTC要快上八个小时