我正在寻找使用Spring 3注释时的一些最佳做法。
我目前正在转向Spring 3,从我到目前为止所读到的内容,我看到很多重点都放在使用注释和远离XML配置上。
实际上推荐的是两种风格的混合,注释涵盖了不会经常更改的内容或从一次运行到下一次运行的内容(例如,@Controller
将保持与应用程序的生命周期类似的内容),虽然改变并且必须可配置的东西进入XML(例如,邮件smtp地址,应用程序与之交谈的Web服务的端点等)。
我的问题是注释的内容和程度如何?
此时注释会使事情变得更难而不是更容易吗?是否完全采用了技术(第3版),以便能够做出这样的陈述,还是需要更多的时间让人们获得经验并反思这个问题?
答案 0 :(得分:13)
总是很难获得真正的高级信息。
简单的教程“看看我的博客,我复制了来自Spring Source网站的hello word教程......现在你可以在任何地方添加花哨的注释,它解决了我们所有的问题,包括癌症和饥饿。”是不是很有用。
如果你还记得正确的春天核心有几个目的,其中包括:
所有需要的Anotation失败:
事实上,我们已经转移了我们的重点:
所以我会在它出现时使用anotations。当它纯粹是为了删除样板代码,冗长。我会将XML配置文件用于您想要配置的东西,即使它只是在单元测试中提供服务的存根实现。
答案 1 :(得分:6)
我使用@Value
作为通过PropertyPlaceholderConfigurer
在外部属性文件中配置的属性,如kunal所说。
何时使用xml没有严格的限制,但我使用的是xml:
回应你的评论:春天被广泛采用,但“好”和“坏”是非常主观的。即便是我的台词也不是普遍的真理。 XML,注释和编程配置都存在于某个目的,每个开发人员/公司都有自己的偏好。
正如我所说 - 没有严格的界限,也没有注释的普遍良好做法。
答案 2 :(得分:3)
注释肯定是java中“更新”编程将继续的方式。我使用注释用于各种用途...例如@Scope
用于bean的范围,@Required
用于使必要依赖,@Aspect
用于配置建议,@Autowired
用于构造函数注入使用注释。从2.5版开始,注释支持一直很好。
请参阅此处了解spring tutorial,其中涵盖了基于注释的问题 here 。
答案 3 :(得分:1)
我认为注释的使用可能会导致一些问题。首先,如果要在实体中编写复杂的命名查询(JPA)。我看到了一些实体代码示例,并问自己代码是否真的是java代码。程序代码中的许多元数据会降低它的可读性,这会破坏干净的代码原则。
第二个问题是JVM版本之间的可移植性。注释是1.5+的特征。如果您的软件应该支持早期的JVM版本,那么您可能不会使用这些版本。
无论如何,您可以随时享受注释,毫无疑问,如果财产仍然存在或输入正确等,您可以节省时间不更改IDE选项卡以检查XML。
对于非常小的项目,如果没有太多东西要在春天宣布,你仍然可以使用XML版本。但是,如果你是一个庞大的项目,如果你有10个xml的配置,事情可能会非常麻烦。
答案 4 :(得分:0)
这可能对你没什么帮助,但在工作中他们不想使用自动装配,因为它需要一个类路径扫描(但我认为这可以是包定义的)。因此,它会根据项目的大小增加应用程序的启动时间。