Spring-DI

作者: do_young | 来源:发表于2019-01-09 15:19 被阅读10次

Spring利用依赖注入(DI),完成对IOC容器中中各个对象的依赖关系赋值;
具体注入规则如下:

  • 默认优先按照类型去容器中找对应的对象;
applicationContext.getBean(UserDao.class);
  • 如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找;
applicationContext.getBean("userDao")
  • 使用@Qualifier可以指定需要装配的组件的id,而不是使用属性名;
@Qualifier("bookDao")
  • 自动装配默认一定要将属性赋值好,没有就会报错,如果不需要赋值可以使用required属性;
@Autowired(required=false)
  • 使用@Primary让Spring进行自动装配的时候,默认使用首选的bean;
@Primary

只需要使用注解,标注该对象需要由容器依赖注入,Spring容器就会完成相关依赖对象的创建及赋值的操作。

    UserService{
        @Autowired
        UserDao  userDao;
    }

Spring支持三种类型的注解:

  • Spring规范的Autowired
  • JSR250规范的Resource
    默认是按照组件名称进行装配的;
    没有能支持@Primary功能;
    没有支持@Autowired(reqiured=false);
  • JSR330规范的Inject
    需要导入javax.inject的包;
    没有required=false的功能;

备注

可以通过继承Spring的Aware接口,为对象注入Spring容器上下文中的对象,Spring提供了以下的Aware接口:

spring-aware.png
Spring通过后置处理器BeanPostProcessor,在容器初始化的过程中,对继承了这些接口的对象注入依赖的对象。

相关文章

  • Spring-DI

    使用构造器注入 使用属性setting方法进行注入 setter() 与init()方法的执行顺序 setter(...

  • Spring-DI

    Spring利用依赖注入(DI),完成对IOC容器中中各个对象的依赖关系赋值;具体注入规则如下: 默认优先按照类型...

  • Spring-DI(依赖注入)

    Spring DI依赖注入 setter设置注入(保证类中有提供setter方法) 构造器注入 命名空间注入 1、...

网友评论

      本文标题:Spring-DI

      本文链接:https://www.haomeiwen.com/subject/przwrqtx.html