在Spring中管理属性的最佳方法

时间:2016-04-26 20:40:12

标签: java spring spring-mvc properties

我正在使用Spring MVC编写一个应用程序,我希望可以使用属性文件进行配置。我查看了Spring的util命名空间,发现了这个:

<util:properties id="MyProperties" location="propertiesPath" />

有了这个,我可以用

简单地注释我的类字段
@Value("myProperty")

并简单地注入了财产。因此,阅读您的属性非常简单。但是当你必须保存它们时,它就不那么直观了。

我偶然发现了很多关于如何正确处理的问题,我认为这代表了我想说的最好的问题:Updating a properties file injected by Spring to include a last run timestamp

我的问题是:为什么在Spring中保存属性如此困难?我这样做是错误的吗?在这一点上,我甚至想知道以这种方式保存属性是一种好的做法还是我应该使用数据库。

从Oracle我可以阅读:

  

Properties类表示一组持久的属性。可以将属性保存到流中或从流中加载。

但是Spring似乎只使其中一个更容易。请赐教。

谢谢。

2 个答案:

答案 0 :(得分:1)

Spring主要涉及创建应用程序的静态,不变的结构,而不是真正涉及事务处理或业务逻辑。它通常定义如何处理事务,但通常不涉及处理本身。我们经常谈论领域模型和架构的分离 - 弹簧是关于架构的。

将某些内容写入某种类型的商店,比如磁盘文件的属性,是事务逻辑(即使您不需要显式事务来执行此操作)。它将是您系统的最终用户功能之一,而不是架构的一部分 - 它将是一个功能(即使最终用户,在这种情况下,是一个系统管理员)。 Spring几乎不支持这种类型的行为 - 正如它几乎不支持存储有关应用程序上下文的动态更改的信息。

答案 1 :(得分:1)

使用这样的属性假设它是只读的。如果您需要使用它进行管理,最好使用处理http://www.mkyong.com/java/java-properties-file-examples/

的纯Java属性编写自定义服务