使用 Spring 3 注释时的最佳做法

2022-09-03 06:10:45

我正在寻找使用Spring 3注释时的一些最佳实践

我目前正在迁移到 Spring 3,从我到目前为止所读到的内容来看,我看到很多关于使用注释和远离 XML 配置的重点。

实际上,建议的是两种样式的混合,注释涵盖了不经常更改的内容或从一次运行到下一次运行的内容(例如,在应用程序的生命周期内将保持原样),而更改且必须可配置的内容进入XML(例如,邮件SMTP地址,应用程序与之通信的Web服务的端点等)。@Controller

我的问题是,注释应该包含哪些内容,在多大程度上应该包含注释?

在哪一点上,注释使事情变得更难而不是更容易?该技术(Spring 3)是否被完全采用,以便能够做出这样的陈述,还是人们需要更多的时间来获得经验,然后反思这个问题?


答案 1

获得真正的高级信息总是很困难的。

简单的教程与“看看我的博客,我从Spring Source网站复制了hello word教程...现在你可以到处放花哨的注释,它解决了我们所有的问题,包括癌症和饥饿。

如果你还记得正确的弹簧芯有几个目的,其中包括:

  • 非侵入性
  • 随时更改 Bean 的任何实现/配置
  • 提供一个集中和受控的位置来放置您的配置

注释无法满足所有这些需求:

  • 它们引入了与弹簧的耦合(您只能使用标准注释,但是一旦您至少有一个弹簧注释,这就不再是正确的)
  • 您需要修改源代码并重新编译以更改 Bean 实现或配置
  • 批注在代码中无处不在。仅通过读取代码或 XML 配置文件,就很难找到真正要使用的 bean。

事实上,我们已经转移了我们的重点:

  • 我们意识到,我们几乎从不提供服务的多个实现。
  • 我们意识到,依赖API并不是那么糟糕。
  • 我们意识到,我们不再使用spring进行真正的依赖注入,而且主要是为了提高生产力并减少Java代码冗长。

因此,当它有意义时,我会使用注释。当它更纯粹地删除样板代码时,冗长。我会负责将 XML 配置文件用于您希望可配置的内容,即使它只是在单元测试中提供服务的存根实现。


答案 2

我用于通过 在外部属性文件中配置的属性,如 kunal 所述。@ValuePropertyPlaceholderConfigurer

对于何时使用xml没有严格的行,但我使用xml:

  • 当豆子不是 I 类控制时
  • 当对象与基础结构或配置相关,而不是与业务逻辑相关时。
  • 当类具有一些我希望可配置的基元属性时,但不一定通过外部化配置。

回应您的评论:春天被广泛采用,但“好”和“坏”是非常主观的。甚至我的台词也不是普遍真理。XML,注释和编程配置都是为了一个目的而存在的,每个开发人员/公司都有自己的偏好。

正如我所说 - 没有严格的界限,也没有通用的注释良好做法。


推荐