我最近开始使用Spring框架。我很困惑何时在xml文件中使用@Resource
vs Property参数(传统方式)。设计新注释时考虑的特殊实际用例是什么?您是否建议完全转向使用Spring Annotations?
答案 0 :(得分:1)
很多帖子已经很好地解释了@Resource
和@Autowired
之间的区别,您也可以从我的blog找到。
基本上他们在注射之前指定了搜索bean的不同方法
默认情况下,@Autowired
将按名称按类型汇编,而@Resource
默认按名称汇编,然后键入。它们也属于不同的罐子。
关于Property argument in xml file
,这是指定bean中字段值的方式。假设您要创建一个名为SamplePerson
的bean,它是Person
类的对象,您需要在xml
中执行的操作是告诉Spring该对象中字段的值是什么,就像:
Person samplePerson = new Person();
samplePerson.setAge(23);
samplePerson.setName("Rugal");
在创建这样的bean之后,Spring上下文会将此对象放在其容器中以供以后使用。现在,您可以使用@Autowired
或@Resource
将此samplePerson
bean注入需要的位置
@Autowired
private Person samplePerson;
然后你会注意到这个person
对象的属性对应于你的xml定义。
但实际上在XML下编码是很乏味的,我宁愿用Java风格进行所有配置,尽管有人可能认为它不够动态。
是的,您可以完全切换从XML配置到Java配置的所有内容。你可以从github得到我的样本
如果您是Spring的新手,我会鼓励您使用我的archetype。您将获得完全集成的代码库。
答案 1 :(得分:0)
@Autowired是特定于Spring的,而@Resource是JSR,但是当前的Spring支持它们。我将使用JSR,因为它也可以在没有Spring框架的情况下工作,因此如果您决定使用其他东西,那么更少的更改)。 关于注释与XML,请参阅此问题Spring annotation-based DI vs xml configuration?
这取决于用例。对我来说,注释更容易,因为它们允许将所有内容直接保存在java代码中,因此它只是自我记录。但有时您可能希望使用XML(例如,如果您想在不修改代码本身的情况下更改配置,则可以在不同的xml位置之间轻松切换)