Spring中@Autowired基本原理

AutoWired的用法

AutoWired可以它可以对成员变量、方法及构造函数进行标注,完成自动装配的工作。

特别的是

如果当前属性类型在容器中有个多个Bean,那么必须要通过属性名 或者 @Qualifier 指定Bean name

自动装配 JavaBean ,按照类型通过set方法进行装配,set方法可以省略

Autowired加在类成员变量上

默认按照ByType类型匹配若按类型没有匹配到则抛出异常,若找到多个符合该类型的则按变量名作为ID进行匹配,若查找的结果为空,那么会抛出异常。解决方法时,使用required=false

required=false可以指定允许某个属性不被设置。

例如在业务层注入dao层,实现代码如下;

@Service
public class CityServiceImp implements ICityService{

    @Autowired
    private CityMapper mapper;

    @Override
    public void save(City city) {
        mapper.save(city);
    }
}

Autowired加在方法或者构造函数上时

这个方法也会在bean创建时候自动运行,且这个方法上的每一个参数都会注入值。

Resource和Autowired和Inject的区别

Autowire的功能强大,Resource符合j2ee的java标准扩展性强,Inject和Resource的使用方法类似,使用场景较少

你可能感兴趣的:(1024程序员节)