Imr*_*ran 6 java spring spring-boot
这是一个奇怪的问题,但是将变量定义为系统属性有什么优点,例如,
System.getProperty("files-dir", System.getProperty("user.home") + "/uploaded-files");
Run Code Online (Sandbox Code Playgroud)
在 Spring 应用程序属性中定义它。什么是更优选的?
如果您定义了该属性,那么application.properties您的可分发文件(JAR 或 WAR)是自包含的,并且无论它如何运行,都知道它自己的配置。
如果您通过命令行 ( ) 定义属性,java -Dxxx=yyy那么您必须配置运行可分发程序的任何内容(例如 Web 容器、脚本等)。
在实践中,您可能最终会得到两者的某种组合:
通过命令行定义应用程序属性的常见情况是为了满足环境/主机特定属性,但Spring 配置文件提供了一种用于定义环境特定属性的有用机制。
我建议起点应该是在 Spring 属性文件中定义所有应用程序特定的配置,并且只有在发现有令人信服的理由时才偏离此配置。这样做的一个常见理由是,分散应用程序配置(其中一些在 application.properties 中,一些在脚本或 env 文件中)可能会使开发人员/devops/支持团队更难理解/增强/管理/支持您的应用程序配置。应用。
| 归档时间: |
|
| 查看次数: |
10811 次 |
| 最近记录: |