问题标签 [spring-profiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 独家 Spring 异形 bean 和 DependsOn 注释
对我有用的代码:
数据库配置的一部分如下所示:
该配置代表两个独占 bean。一个在“dbClean”配置文件存在时创建,另一个在它不存在时创建。忍受我,忘记代码重复。
另一个配置管理 Quartz 配置:
上面的工作就像一个魅力。问题是 Quartz 配置没有使用 Flyway 自动装配 bean。它只需要在 Quartz 调度程序之前创建这个 bean。
所以理想的配置是:
数据库部分:
石英部分:
问题是最后一个配置不起作用。从未创建过任何一种flyway bean。我不知道为什么。回想起我使用 xml 配置时,我记得在不同的配置文件中可以有两个具有相同名称的 bean。它奏效了。我在这里做错了什么,或者这可能是 Spring 本身的一些错误?通常我自己调试 Spring,但带有 @Configuration 逻辑的 Spring 部分对我来说是一个绿色文件,我现在不能在上面浪费时间。
java - 如何在春季自动装配具有特定配置文件的实施者?
让我用代码演示一下:
我如何动态地(在每个到达的请求上)使 spring 根据它们的配置文件自动装配上述类之一?甚至可以在接线时做这样的事情吗?
背景:我正在寻求一种实现服务器端版本控制机制的好做法。如果请求属于版本“V1”,我想用“V1”配置文件自动装配一个类,反之亦然。(目前我正在自动装配一个列表并迭代它们以找到合适的版本)。
spring - Spring 配置文件:无法自动装配存储库 bean
尝试使用我创建的一些 Spring 配置文件运行 JUnit 测试时遇到问题。实际上,配置文件确实可以正常工作,但无法自动装配的存储库 bean 除外。
这是我在 spring-integration-context.xml 中用于配置持久性的代码片段:
所以我认为用“beans profile”元素包装整个持久性配置就足够了。
现在,从我的 JUnit 测试类:
然后我用以下方法注释我的 ApplicationTest 类:
@ImportResource("classpath:/META-INF/spring/integration/spring-integration-context.xml")
但是当我运行测试时,我得到以下异常:
请注意,在我的测试类中,ScheduleLoader 以前是自动装配的,实际上该 bean 也在开发配置文件中。如果我尝试在没有 @ActiveProfiles("dev")注释的情况下运行测试,那么ScheduleLoader failed autowiring 会抛出异常,正如预期的那样(因为它仅在 dev 配置文件中)。
那么弹簧配置文件和我的持久性配置有什么问题?
PD:我已确保我的存储库和实体类在其中
guiatv.persistence.*
包裹。
顺便说一句,我使用的是 Spring Boot,所以我还尝试通过在 application.properties 文件中添加spring.profiles.active=dev而不是编写 @ActiveProfiles("dev") 注释来使其工作。
更新
此外,如果我尝试删除每个“beans profile”元素,以便每个组件都是根“beans”元素的子元素,那么无论没有 @ActiveProfiles("dev") 注释或 @ActiveProfiles( “默认”)注释。
java - 根据配置文件加载spring xml配置
我知道我可以像这样从 xml 文件加载应用程序上下文:
但就我而言,这无关紧要。
在applicationContext.xml
我使用配置文件里面。
如何根据配置文件加载上下文?
spring - 使用 Spring 配置文件启用/禁用 web.xml 过滤器
我有一个可以使用两种不同持久性 API 的 Spring 应用程序:
- 春季数据 JPA
- 春季数据 Neo4j
使用 Spring Data JPA 时,我需要在“web.xml”中声明“OpenEntityManagerInViewFilter”来进行延迟加载:
问题是我在使用 Spring Data Neo4j 时无法启用此过滤器。保持启用会导致以下运行时错误:
我想选择与 Spring 配置文件一起使用的数据库(例如spring.profiles.active=relational-database
或spring.profiles.active=graph-database
)。
问题:当配置文件是“关系数据库”时如何启用“OpenEntityManagerInViewFilter”,当配置文件是“图形数据库”时禁用它?
谢谢!
相关问题:
- 如何有条件地启用/禁用 web.xml 中的过滤器,但我没有使用
DelegatingFilterProxy
.
java - 配置文件不存在时的默认 Spring bean
我正在使用 Spring MVC 控制器,并且我想在开发过程中提供一些额外的请求映射方法。我可以使用 Spring 配置文件来做到这一点:
但理想情况下,我宁愿不要用引用“开发”配置文件的注释来污染生产类的代码。
我认为也许可以使用 Primary 注释,但我无法让它工作。 这篇文章似乎说这应该有效:
但是当我这样做时,Spring 会在“dev”配置文件下启动时尝试加载两个控制器,但失败并显示
我想做的事可能吗?如果是这样,我该怎么做?
xml - 创建 Spring 配置文件时出错
我收到错误消息:
我只是用数据源创建一个本地弹簧配置文件,但不知道我需要包含什么。
我的命名空间配置包括:
发生错误的原因是:<beans profile="local"></beans>
java - Spring 属性如何查找/优先级工作?
我已经和这个斗争了一段时间了。我用谷歌搜索并尝试了一些东西,但我发现的一切都无法解决我的问题。
这就是我的属性位置。
然后,在我的一个子项目中,我有 2 个属性文件,我的“生产”属性在
src/main/resources/com/lala/project/subproject1/subprojectA/configuration/myProperties.properties
和我的“测试”属性
src/test/resources/com/lala/project/subproject1/subprojectA/test/configuration/myProperties.properties
显然,这些文件具有几乎相同的属性名称,但具有不同的值。我想知道的是为什么我在 subprojectA 中的测试不断选择我的“生产”属性而不是我的“测试”属性?换句话说,为什么 spring 不拿起我的“测试”属性并覆盖我的“生产属性”?
我忘了提到我不能简单地删除我的测试配置文件的“生产”属性位置,因为我需要来自其他项目、子项目的生产属性。
spring - 如何将配置文件激活为环境变量
我在我的 spring boot 应用程序中使用 spring 配置文件配置环境变量。我在那里做了配置
我的界面是
我的开发配置是
和我为生产环境配置的一样
现在我使用运行配置->agruments 在 eclipse 中配置环境变量
现在,当我尝试运行我的应用程序时,出现错误:
所以请帮助我在那里我错过了什么?
提前致谢!
spring-boot - Spring Boot 以编程方式设置配置文件
如何在 Spring Boot 应用程序中设置活动配置文件。此应用程序将部署在独立的 Tomcat 中。
我有 2 个属性文件 application-{profile}.properties。
我的应用类
如果我使用嵌入式 tomcat 运行应用程序,则开发配置文件设置为活动状态并且工作正常。但是当我部署在独立的tomcat中时。这没用。
我试图在配置方法中设置活动配置文件。但是当我从上下文中获取环境时,我得到空指针异常。
有关如何设置活动配置文件的任何帮助。