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的使用方法类似,使用场景较少