@Resource

Spring还通过在字段或bean属性设置方法上使用JSR-250 @Resource注释(javax.annotation.Resource)来支持注入。
这是Java EE中的一种常见模式:例如,在jsf管理的bean和JAX-WS端点中。Spring也支持这种模式用于Spring管理的对象。

@Resource带有一个name属性。默认情况下,Spring将该值解释为要注入的bean名。换句话说,它遵循按名语义,如下面的例子所示:
public class SimpleMovieLister {
private MovieFinder movieFinder;
@Resource(name=“myMovieFinder”)
public void setMovieFinder(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
}

如果没有显式指定名称,则默认名称派生自字段名或setter方法。对于字段,它采用字段名。对于setter方法,它采用bean属性名。下面的例子将把名为movieFinder的bean注入到其setter方法中:
public class SimpleMovieLister {
private MovieFinder movieFinder;
@Resource
public void setMovieFinder(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
}

在没有指定显式名称的@Resource使用的exclusive情况下,与@Autowired类似,@Resource会找到一个主类型匹配,而不是特定的命名bean,并解析众所周知的可解析依赖项:BeanFactory、ApplicationContext、ResourceLoader、ApplicationEventPublisher和MessageSource接口。
因此,在下面的例子中,customerPreferenceDao字段首先查找名为“customerPreferenceDao”的bean,然后返回到customerPreferenceDao类型的主类型匹配:
public class MovieRecommender {
@Resource
private CustomerPreferenceDao customerPreferenceDao;
@Resource
private ApplicationContext context;
public MovieRecommender() {
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值