Java @xml中的资源与属性参数

Java @xml中的资源与属性参数,java,spring,spring-annotations,Java,Spring,Spring Annotations,我最近开始使用Spring框架。我对何时在xml文件中使用@Resource和属性参数(传统方式)感到困惑。设计新注释时考虑的特殊实际用例是什么?您是否建议完全转向使用Spring注释?@Autowired是Spring特有的,@Resource是JSR,但当前的Spring支持这两种注释。我会使用JSR one,因为它在没有Spring框架的情况下也可以工作,所以如果您决定使用其他工具,更改会更少)。 关于注释与XML的关系,请参考此问题 这取决于用例。对我来说,注释更容易,因为它们允许将所有

我最近开始使用Spring框架。我对何时在xml文件中使用
@Resource
和属性参数(传统方式)感到困惑。设计新注释时考虑的特殊实际用例是什么?您是否建议完全转向使用Spring注释?

@Autowired是Spring特有的,@Resource是JSR,但当前的Spring支持这两种注释。我会使用JSR one,因为它在没有Spring框架的情况下也可以工作,所以如果您决定使用其他工具,更改会更少)。 关于注释与XML的关系,请参考此问题


这取决于用例。对我来说,注释更容易,因为它们允许将所有内容直接保存在java代码中,所以它只是自我文档化。但有时您可能会想使用XML(例如,如果您想在不修改代码本身的情况下更改配置,您可以轻松地在不同的XML位置之间切换)

那么
@Resource
@Autowired
之间的差异已经在许多帖子中得到了很好的解释,您也可以从我的文章中找到

基本上,他们在注入之前指定了不同的方法来搜索bean。
默认情况下,
@Autowired
将先按类型组装,然后按名称组装,而默认情况下,
@Resource
将先按名称组装,然后按类型组装。它们也属于不同的罐子


关于xml文件中的
属性参数,这是您在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配置。您可以从以下地址获取我的样品。

如果你是春天的新手,我会鼓励你使用我的。您将获得一个完全集成的代码库。

@ryekayo感谢您提供的信息。我已经更新了我的问题。根据我的说法,我们以后可能要更改的配置可能是占位符或属性参数,因为我们正在设置值。Rest所有变量都应该用@Resource注释。