首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为多个spring配置文件定义beans

为多个spring配置文件定义beans
EN

Stack Overflow用户
提问于 2015-08-11 20:45:08
回答 2查看 10.1K关注 0票数 6

我的应用程序中有3个配置文件,分别是:开发、测试、生产。我想使用spring概要文件来自定义bean注入,这样对于profile dev和test,我将有一个bean实现,对于profile prod,我将有另一个bean实现。问题是如何实现这一点。如何将一个bean设置为在两个不同的配置文件中处于活动状态。我尝试了这样的东西:

代码语言:javascript
复制
@Component
@Profile("dev, test")
class DevTestBean{}

但不幸的是,spring将其视为一个名为dev comma space test的单一配置文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 20:48:03

您必须更改为@Profile({"dev", "test"})

该值必须声明为Set。请参阅documentation

导入如果@Configuration类被标记为@Profile,则将绕过与该类关联的所有@Bean方法和@

注释,除非一个或多个指定的配置文件处于活动状态。这类似于Spring XML中的行为:如果提供了beans元素的profile属性,那么beans元素将不会被解析,除非至少激活了profile 'p1‘或'p2’。同样,如果@Component或@Configuration类被标记为@ profile ({"p1","p2"}),则除非至少激活了配置文件'p1‘或'p2’,否则不会注册或处理该类。

票数 12
EN

Stack Overflow用户

发布于 2019-10-25 21:43:38

未在官方文档中提供XML解决方案:

https://docs.spring.io/spring/docs/4.3.12.RELEASE/spring-framework-reference/htmlsingle/#beans-definition-profiles

因此,为了记录,我将把它放在这里:

代码语言:javascript
复制
<beans profile="dev,foo,bar">
  <!-- (...) -->
</beans>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31942187

复制
相关文章

相似问题

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