我最近开始使用Spring框架。我很困惑何时使用 @Resource
vs xml 文件中的属性参数(传统方式)。设计新注释时考虑了哪些特殊的实际用例?您建议完全转向使用 Spring Annotations 吗?
最佳答案
嗯,@Resource
和 @Autowired
之间的区别已经被很多帖子很好地解释了,你也可以从我的 blog 中找到。
基本上,他们指定了在注入(inject)之前搜索 bean 的不同方式。
@Autowired
默认先按类型组装,再按名称组装,而 @Resource
默认先按名称组装,然后再按类型组装。它们也属于不同的jar。
关于xml文件中的属性参数
,它是指定bean中字段值的方式。假设你想创建一个名为 SamplePerson
的 bean,它是一个 Person
类的对象,你需要在 xml
中做的是告诉 Spring该对象中字段的值是多少,就像:
Person samplePerson = new Person();
samplePerson.setAge(23);
samplePerson.setName("Rugal");
创建这样一个bean后,Spring上下文会将这个对象放入其容器中以供以后使用。现在您可以使用 @Autowired
或 @Resource
将此 samplePerson
bean 注入(inject)到需要的地方
@Autowired
private Person samplePerson;
然后您会注意到这个 person
对象将具有与您的 xml 定义相对应的属性。
但实际上在 XML 下编码很乏味,我宁愿用 Java 风格进行所有配置,尽管有人可能会认为它不够动态。
是的,您完全可以将所有内容从 XML 配置切换到 Java 配置。您可以从 github 获取我的 sample .
如果您是 Spring 新手,我会鼓励您使用我的 archetype 。您将获得完全集成的代码库。
关于java - @Resource 与 xml 中的 Property 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556446/