zoukankan      html  css  js  c++  java
  • @Autorwird @Resource @Qualifier

    @Autowird 按照类型加载bean ,且默认是required,当要注入的实列为null即spring工厂中不存在要加载的类的实列,将会报beanCreateExceprion异常。

     如果允许 null 值,可以设置它 required 为false。

    如果我们想要按名称进行装配的话,可以添加一个 @Qualifier 注解解决。

    (一般IOC或DI)依赖注入针对多个接口,而非实现,当接口有多个实列的时候,如果按类型注入,就会发生冲突,很容易理解,有多个实现,就不知道要加载那个这个接口的实现类。这时按名称注入,就可以解决这个问题@Qualifier和@Autowired组合使用。

     @Resource

      默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来注入。

      它有两个属性是比较重要的:

        ①. name: Spring 将 name 的属性值解析为 bean 的名称, 使用 byName 的自动注入策略

        ②. type: Spring 将 type的属性值解析为 bean 的类型,使用 byType 的自动注入策略

      : 如果既不指定 name 属性又不指定 type 属性,Spring这时通过反射机制使用 byName 自动注入策略

      @Resource 的装配顺序

        1. 如果同时指定了 name 属性和 type 属性,那么 Spring 将从容器中找唯一匹配的 bean 进行装配,找不到则抛出异常

        2. 如果指定了 name 属性值,则从容器中查找名称匹配的 bean 进行装配,找不到则抛出异常

        3. 如果指定了 type 属性值,则从容器中查找类型匹配的唯一的 bean 进行装配,找不到或者找到多个都会抛出异常

        4. 如果都不指定,则会自动按照 byName 方式进行装配, 如果没有匹配,则回退一个原始类型进行匹配,如果匹配则自动装配

  • 相关阅读:
    撩妹技能 get,教你用 canvas 画一场流星雨
    git详细使用教程入门到精通(史上最全的git教程)
    Google Performance工具,你还不会用?Git走起。
    使用PIE.htc让万恶的IE内核浏览器IE678支持CSS3部分属性
    HTML编码规范
    Canvas制作的下雨动画
    Flex 布局教程:语法和实例
    CSS编码规范
    奇葩程序写的神一样的注释,被老板看见会不会开出呢?
    Vertical-Align你应该知道的一切
  • 原文地址:https://www.cnblogs.com/caibixiang123/p/9023242.html
Copyright © 2011-2022 走看看