一尘不染

Spring 3.1中的默认配置文件

spring

在我的应用程序中,我有用@Profile(“prod”)和注释的bean@Profile("demo")。您可以猜到:)第一个用于连接到生产数据库的bean,第二个注释使用伪造的DB(HashMap或其他)的bean,以加快开发速度。

我想要的是默认配置文件("prod"),如果未被“ something-else ” 覆盖,它将始终使用。

完美将是在我的web.xml

<context-param>
     <param-name>spring.profiles.active</param-name>
     <param-value>prod</param-value>
</context-param>

然后用覆盖它,-Dspring.profiles.active="demo"这样我就可以做到:

mvn jetty:run -Dspring.profiles.active="demo". 

但是可悲的是这是行不通的。知道我该怎么做到吗?-Dspring.profiles.active="prod"我无法在所有环境上进行设置。


阅读 521

收藏
2020-04-14

共2个答案

一尘不染

我的经验是

@Profile("default")

如果未标识其他配置文件,则仅将bean添加到上下文。如果你传入其他配置文件,例如-Dspring.profiles.active="demo",该配置文件将被忽略。

2020-04-14
一尘不染

将生产环境定义为web.xml中的默认配置文件

<context-param>
   <param-name>spring.profiles.default</param-name>
   <param-value>prod</param-value>
</context-param>

如果你要使用其他配置文件,请将其作为系统属性传递

mvn -Dspring.profiles.active="demo" jetty:run
2020-04-14