8.2.3: 使用@Resource配置依赖

前端之家收集整理的这篇文章主要介绍了8.2.3: 使用@Resource配置依赖前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@Resource位于java.annotation包下,是来自JavaEE规范的一个Annotation,Spring直接借鉴了该Annotation,通过使用该Annotation为目标Bean指定协作者Bean。

@Resource有一个name属性,默认情况下,Spring将这个值解释为需要被注入的Bean实例的名字。换句话说,使用@Resource与<property.../>元素的ref属性有相同的效果

  1. @Component
  2. public class Chinese implements Person {
  3. private Axe axe;
  4. @Resource(name="stoneAxe")
  5. public void setAxe(Axe axe) {
  6. this.axe = axe;
  7. }
  8.  
  9. @Override
  10. public void useAxe() {
  11. System.out.println(axe.chop());
  12. }
  13.  
  14. }
上面的@Resource Annotation指定将stoneAxe注入该setAxe( )方法,也就是将容器中的stoneAxe Bean作为setAxe方法的参数传入。

@Resource不仅可以修饰setter方法,也可以直接修饰Field,使用@Resouce时还可以省略name属性。使用@Resource修饰Field时连setter方法都可以不要:

  1. @Component
  2. public class Chinese implements Person {
  3. @Resource(name="stoneAxe")
  4. private Axe axe;
  5. @Override
  6. public void useAxe() {
  7. System.out.println(axe.chop());
  8. }
  9.  
  10. }
① 当使用 @Resource修饰setter方法时,如果省略name属性,例如@Resource标注 setName( )方法,则Spring默认注入容器中名为name的组件。

② 当使用@Resource修饰Field时,如果省略name属性,例如@Resource标注name Field,则Spring默认会注入容器中名为name的组件。

猜你在找的设计模式相关文章