首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为本地读取java spring属性

为本地读取java spring属性
EN

Stack Overflow用户
提问于 2020-02-27 15:36:21
回答 1查看 145关注 0票数 0

我有一个叫做Pikachu的项目,它的结构是这样的

代码语言:javascript
复制
src
 |-test
 |-main
    |-java
    |-config
        |-dev
        |-test
        |-prod
    |-resources
         |-pikachu.mvc.spring.xml

每个环境(dev、test、prod)都有自己的属性文件(.j2格式)。在pikachu.mvc.spring.xml内部,我为数据源设置了bean

代码语言:javascript
复制
// pikachu.mvc.spring.xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="${db.driver}" />
  <property name="url" value="${db.url}" />
  <property name="username" value="${db.username}" />
  <property name="password" value="${db.password}" />
</bean>

在不同环境下的每个属性文件是,

代码语言:javascript
复制
// dev/pikachuCfg.properties.j2
db.username = {{pikachu.db_username}}
db.password = {{pikachu.db_password}}
db.url = {{pikachu.db_url}}
db.driver = {{pikachu.db_driver}}

一旦我部署到每个环境,它就会成功地加载属性。但是,当我在本地(Jboss11)上启动它时,它会抛出PropertyAccessException

代码语言:javascript
复制
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [${db.driver}]"}}

这是我的问题。

  1. 如果我必须在resources文件夹中有属性文件,它是否比配置文件夹中的属性文件有更高的顺序?如果它比config文件夹中的其他属性文件有更高的顺序,那么该项目如何在不同的环境(dev、test、prod)中使用属性文件?

提前感谢!

编辑

我看过这份文件,(https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config)。但是,我仍然不清楚在config文件夹和当前文件夹( spring.mvc.xml位于哪里)之间哪个文件夹有更高的顺序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-27 18:20:25

希望这能帮上忙

spring.profiles.active=dev

  • Keep
  1. 将另一个application.properties文件放置在配置目录下,并行于dev、test & prod
  2. 添加到其中--这是在进行测试或prod环境(

)时注释过的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60436729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档