【发布时间】:2021-06-19 04:46:24
【问题描述】:
我是春天的新手,我正在研究它。并偶然发现了@Profile 注释。
我想用Spring(不是Springboot)写一个简单的项目,学习如何使用@profile注解根据环境加载属性。几乎无处不在,示例(Ex1、Ex2)我只在 Springboot 中看到。我想知道我们是否不能编写一个可以根据环境(dev、prod)动态加载属性的 Spring 应用程序。
-
一些示例(Ex3、Ex4、Ex5)与 @Profile 一起显示,但这些示例已经硬编码了每个环境的 bean 详细信息,如下所示。这就是我们必须编写属性加载的方式吗?
@Profile("dev") @Bean public String devDBCcnnection() { System.out.println(dbConfiguration.getUrl()); return "DB Connection for Dev"; } @Profile("test") @Bean public String devTestCcnnection() { System.out.println(dbConfiguration.getDriverClassName()); return "DB Connection for Test"; } @Profile("prod") @Bean public String devProdCcnnection() { System.out.println("DB Connection for Prod"); return "DB Connection for Prod"; } -
它必须像上面的例子一样为每个配置文件编写一个 bean?
有人可以告诉我使用@Profiles,不能像在 Spring 应用程序中那样动态加载属性值吗?
如果您可以提供 Spring 5 的示例,请不胜感激
【问题讨论】:
-
您有多个应用程序属性配置文件还是只有一个文件?如果你使用一个文件,你可以在你的 pom (maven) 文件中设置这些属性。
标签: java spring spring-boot