spring属性注入:@Autowired @Resource
@Autowired 自动装配
根据类的类型进行自动装配,无需在类中指定set方法。但出现的问题是如果含有多个同样的类型,如果不知道名称则会报错。原因很简单
程序分不清楚你要装入的是哪个类型。
指定装入类型的方式:
1、在类的声明除指定名字
@Repository("customerDao")
public class CustomerDaoImpl{}
对应的需要注入的类:
public class CustomerServiceImpl{
private CustomerDaoInfo customerDao
}
2、类声明处不做更改,在要注入的类中指定要装入的类
public class CustomerServiceImpl implements CustomerServiceinfo{
@Autowired
@Qualifier("customerImpl")
private CustomerInfo customer;
}
@Resource 注入方式 :这种注入方式其实和@AutoWired 类似,但是你看import 导入的类时,会发现 @Resource 的注入是J2EE提供的,因此就有一种说法是
使用@Resource 可以减少程序与spring之间的耦合,个人觉得这种说法有点扯犊子,既然你使用了spring框架,本身组件的扫描又是spring完成的,又何来这样
一种 鸡肋似的的说法呢。
不同的是使用@Resource注入 我们的private声明属性时,就不能瞎写了,要根据类名首字母小写的方式进行注入。或者使用像@AutoWired 的方式区分名称进行
注入。