zoukankan      html  css  js  c++  java
  • Spring In Action ③

    第三章  最小化Spring xml配置

    自动装配(autowiring)

    自动检测(autodiscovery)

    自动装配

    byName、byType、constructor

    autodetect(首先constructor,然后byType)

    <bean id=.....   autowire="constructor"/>
    
    <bean id=....   primary="true"/> <!-- 首选项bean-->
    <bean id=....   autowire-candidate="false"/> <!-- 不作为候选bean进行装配-->

    默认自动装配 (default-autowire默认为none,不进行自动装配)

    <beans  xmlns=...................
         .......................
         default-autowire="byType">
    
    ...........
    </beans>

    使用注解装配

    Spring默认禁用注解装配,需在context命名空间配置如下:

    <context:annotation-config/>

    ①: 自带的@Autowired  属性 方法 构造器(required=false)

    ②: @Injects 没有required属性,注解依赖关系必须存着

    ③: @Resource

    @Qualifier 与 @autowired配合使用,指定特定id的bean,可以理解为将autowired的默认byType更改为byName。

    qualifier也可以修饰bean,进行归类管理。

    @Qualifier("stringed")
    public class Guitar implements Instrument {
    ....
    }
    
    @Qualifier("stringed")
    public class Violin implements Instrument {
    ....
    }
    
    ******************************************
    
    当使用自动注入的时候
    @Autowired
    @Qualifier("stringed")
    private Instrument instruments;

    创建自定义的限定器(Qualifier)

    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    import org.springframework.beans.factory.annotation.Qualifier;
    
    @Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Qualifier
    public @interface StringedInstrument {
    
    }

    @Inject 对应@Named,类似@Autowired对应@Qualifier.

  • 相关阅读:
    quora 中有关angular与emberjs的精彩辩论
    迷你MVVM框架 avalonjs 0.94发布
    重写自己,减少判断 ---- 引发的思考
    JSON数据的优化
    记录全局错误
    Bat相关的项目应用
    C#中如何实现json转化时只处理部分属性
    JSON数据的处理中的特殊字符
    C# .net中json字符串和对象之间的转化方法
    VS调试 ---- 监视窗口、即时窗口、输出窗口
  • 原文地址:https://www.cnblogs.com/dorothychai/p/3951653.html
Copyright © 2011-2022 走看看