这个星期我一直在努力学习Spring,JBoss,Maven,JPA和Hibernate,我玩得很开心.我对在类中注入资源的许多不同方法感到有些困惑.直到本周,我甚至不知道你可以以任何其他方式注入资源,而不是<property>在Spring XML配置中使用标记.
<bean id="catalogService" class="com.idbs.omics.catalog.service.CatalogService">
<property name="termDao" ref="termDao"></property>
</bean>
Run Code Online (Sandbox Code Playgroud)
当我开始尝试使用JPA时@PersistenceContext,我遇到了,但这似乎是一个非常公平的特殊情况.然后我开始阅读Spring的测试框架,我看到了第一个使用的示例,@Resource(name="catalogService")然后在Web服务示例中@Autowired崩溃了派对!
**The Question!**
Run Code Online (Sandbox Code Playgroud)
那么所有这些之间的区别是什么,是否有正确和错误的情况使用它们?我想我在这里寻找最好的做法.
干杯全都
Sea*_*oyd 13
@Autowired,@Resource和@Inject我认为你需要阅读的Spring Reference部分是
有许多类似的注释.通常,有一个Spring和一个非Spring版本可以做同样的事情.Spring会尽可能地接受标准,但是在标准出现之前,Spring会经常提出自己的想法.示例:Spring支持自己的@Autowired注释,但也支持@InjectJSR-330 的新注释,以及JSR-250 @Resource注释(所有注释都可用于执行相同的操作).
这里的关键概念是Spring不会强迫您使用自己的代码,但支持许多不同的方式而不将您的应用程序与Spring耦合.(还有一些注释没有非Spring等价,比如@Transactional,但是如果你愿意的话,你可以通过XML添加这个功能,这样你就可以保持你的应用程序100%Spring免费,并且仍然使用许多便利注释和当然,幕后的Spring布线和生命周期管理.
| 归档时间: |
|
| 查看次数: |
5990 次 |
| 最近记录: |