加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何修改java属性文件中的值

发布时间:2020-12-15 02:11:35 所属栏目:Java 来源:网络整理
导读:我有一个config.properties文件,其中包含可配置的属性,例如在tomcat上部署的webapp中的数据库连接详细信息.例如 local.driver: com.mysql.jdbc.Driverlocal.username:myuserlocal.password:mypassdev.driver: com.mysql.jdbc.Driverdev.username:mydevuserde
我有一个config.properties文件,其中包含可配置的属性,例如在tomcat上部署的webapp中的数据库连接详细信息.例如

local.driver: com.mysql.jdbc.Driver
local.username:myuser
local.password:mypass

dev.driver: com.mysql.jdbc.Driver
dev.username:mydevuser
dev.password:mydevpass

我可以使用spring Environment对象或@Value从config.properties中检索值.
我的问题是当你在dev上运行时,如何让Spring的环境对象在本地和dev属性上运行时选择本地属性?另外,保存敏感数据听起来也不对,例如生产数据库连接
属性文件中的详细信息将在代码库中浮动.那么在生产环境中如何添加生产细节呢?理想情况下,我希望在我喜欢的时候更改它们,而不必重新部署应用程序.我正朝着正确的方向前进吗?

注 – 我在SO上看到的所有答案都讨论了在java代码中更改这些属性.我不想这样做,我希望能够独立于应用程序代码配置这些值.

谢谢

解决方法

您可以查看 spring profiles以加载特定环境的特定文件.

或者,您还可以使用JNDI属性或容器中设置的环境属性参数化从应用程序上下文中加载属性的文件.

例:

<context:property-placeholder ignore-unresolvable="true" location="${env.config.file:classpath*:META-INF/spring/profiles/dev/dev.properties}" />

启动它时,可以使用-Denv.config.file =在容器级别(比如Tomcat)设置env.config.file.通过这样做,Spring自动在系统中找到属性并替换它.如果未明确设置它(例如,在dev中可能使用其他容器,例如jetty),它将使用给定的默认值(在此示例中为dev.properties).

通过将属性文件放在war / ear之外,可以随意更改它们,并且只需要重新启动上下文.或者,您可以查看可重新加载的属性占位符.如果您不希望明确存储在战争中的密码,这也会有所帮助.

要加密属性文件中的信息,如果您使用的是Spring 3,还可以检查:http://www.jasypt.org/spring3.html.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读