我希望有一个目录结构:
/Directory
- Application.jar
- application.properties
这样我就可以更改属性而无需重新打包和重新部署(而只是重新启动jar)。如何使用spring注释或配置类完成此操作?
我没有询问是否可以使用我的网络应用程序提供外部资源,我还希望更改spring加载application.properties文件的位置。
答案 0 :(得分:2)
你提到了jar,所以你正在使用Spring Boot?
如果是这样,同一目录中的外部application.properties(结构就像你描述的那样)将覆盖打包在jar文件中的application.properties。
然后,如果您的application.properties中有key=value
之类的内容,则可以使用@Value("${key}") String key
将其插入代码中。
尝试一下,它会起作用:)
答案 1 :(得分:0)
您可能想要在Spring中探索PropertyPlaceholderExplorer类。此类提供了访问jar / war包外部属性文件的工具。还有一个简短的教程here。
答案 2 :(得分:0)
如果你开始使用Spring Boot(在某个阶段你肯定会)。你变得强大configuration externalization features。
使用Spring Boot,您的applications.properties会自动加载到Spring Boot上下文中,您可以使用${...}
占位符。
您可以使用更现代的功能@ConfigurationProperties将配置映射到POJO。甚至可以通过Java EE验证注释验证此POJO(例如@NotNull)