在我的应用程序中,我有用@Profile(“prod”)和注释的bean@Profile("demo")。您可以猜到:)第一个用于连接到生产数据库的bean,第二个注释使用伪造的DB(HashMap或其他)的bean,以加快开发速度。
@Profile("demo")
HashMap
我想要的是默认配置文件("prod"),如果未被“ something-else ” 覆盖,它将始终使用。
"prod"
完美将是在我的web.xml:
web.xml
<context-param> <param-name>spring.profiles.active</param-name> <param-value>prod</param-value> </context-param>
然后用覆盖它,-Dspring.profiles.active="demo"这样我就可以做到:
-Dspring.profiles.active="demo"
mvn jetty:run -Dspring.profiles.active="demo".
但是可悲的是这是行不通的。知道我该怎么做到吗?-Dspring.profiles.active="prod"我无法在所有环境上进行设置。
-Dspring.profiles.active="prod"
我的经验是
@Profile("default")
如果未标识其他配置文件,则仅将bean添加到上下文。如果你传入其他配置文件,例如-Dspring.profiles.active="demo",该配置文件将被忽略。
将生产环境定义为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