春季 3.1 中的默认配置文件

2022-08-31 10:22:33

在我的应用程序中,我用 和 注释了 bean。第一个,正如你可以:)猜到的那样,用于连接到生产数据库的bean,第二个注释使用一些假DB(或其他)的bean,以使开发更快。@Profile("prod")@Profile("demo")HashMap

我希望拥有默认配置文件(),如果它没有被“其他东西”覆盖,它将始终使用。"prod"

完美将是在我的: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"


答案 1

将生产环境定义为 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

答案 2

我的经验是使用

@Profile("default")

仅当未识别其他配置文件时,才会将 Bean 添加到上下文中。如果您传入不同的配置文件,例如 ,则忽略此配置文件。-Dspring.profiles.active="demo"


推荐