springboot 常用注解解析

Spring IOCs实现bean的注入

 

  • DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象。即有侵入性。
  • DI 是 Spring 使用的方式,容器负责组件的装配。

spring IOC设计支持以下功能

  • 依赖注入
  • 依赖检查
  • 自动装配
  • 支持集合
  • 指定初始化方法和销毁方法
  • 支持回调某些方法(但是需要实现 Spring 接口,略有侵入)

Spring 作者 Rod Johnson 设计了两个接口用以表示容器。容器管理着 Bean 的生命周期,控制着 Bean 的依赖注入。

  • BeanFactory(BeanFactory 粗暴简单,可以理解为就是个 HashMap)
  • ApplicationContext(继承了多个接口。因此具备了更多的功能)

ClassPathXmlApplicationContext 构造过程

  • 低级容器 加载配置文件(从 XML,数据库,Applet),并解析成 BeanDefinition 到低级容器中。
  • 加载成功后,高级容器启动高级功能,例如接口回调,监听器,自动实例化单例,发布事件等等功能。
  1. 加载所有的 Bean 配置成 BeanDefinition 到容器中,如果 Bean 有依赖关系,则使用占位符暂时代替。
  2. 然后,在调用 getBean 的时候,进行真正的依赖注入,即如果碰到了属性是 ref 的(占位符),那么就从容器里获取这个 Bean,然后注入到实例中 —— 称之为依赖注入。

可以看到,依赖注入实际上,只需要 “低级容器” 就可以实现。

这就是 IoC。



springboot 常用实现bean注解

@service  表示Ioc容器中的一个bean,内部属性通过外部注入

@bean 定义容器的一个bean,可以具有一个名字为参数
@component 表示一个组件,组件会依赖其他bean

@autowired 表示会自动注入一个bean,且该bean只有一个

@configuration 表示一个加载类,当访问相关bean时会自动里面定义的bean

 

SpringbootTest常用注解

@RunWith(SpringRunner.class) @SpringBootTest(classes = {Application.class})// 指定启动类,提供当前上下文环境,可以测试是否加载了Bean

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页