Spring两种注⼊⽅式构造器注⼊和setter注⼊
这两种注⼊可以分别⽤两种注解来实现⼀个是 @Autowired 和 @Resource
@Autowired  ⽤作构造注⼊
@Resource  ⽤作 setter注⼊
@Autowired 和@Resource  的区别的
resource和autowired注解的区别@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required 属性为false。如果我们想使⽤按照名称(byName)来装配,可以结合@Qualifier注解⼀起使⽤。如下:
public class TestServiceImpl {
@Autowired
@Qualifier("userDao")
private UserDao userDao;
}
2)@Resource
@Resource默认按照ByName⾃动注⼊,由J2EE提供,需要导⼊包javax.annotation.Resource。@Resource有两个重要的属性:name和type,⽽Spring将@Resource注解的name属性解析为bean的名字,⽽type属性则解析为bean的类型。所以,如果使⽤name属性,则使⽤byName的⾃动注⼊策略,⽽使⽤type属性时则使⽤byType⾃动注⼊策略。如果既不制定name也不制定type属性,这时将通过反射机制使⽤byName⾃动注⼊策略。
public class TestServiceImpl {
// 下⾯两种@Resource只要使⽤⼀种即可
@Resource(name="userDao")
private UserDao userDao; // ⽤于字段上
@Resource(name="userDao")
public void setUserDao(UserDao userDao) { // ⽤于属性的setter⽅法上
this.userDao = userDao;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。