问题标签 [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
背景:所以,我有几个连接外部系统的 bean。对于开发来说,模拟外部系统并用一些产生或多或少静态响应的实现替换接口 bean 是很方便的。所以我一直在做的是创建一个接口,真正的实现和一个像这样的存根实现:
...这很好用:如果存根配置文件不存在,则根本不会加载存根 bean。如果它存在,由于 @Primary 注释,它很好地取代了真正的实现。
问题:然而,现在我第一次在这样的情况下运行,我实际上已经获得了同一接口的两个实际实现。其中一个被定义为主要的,但另一个也可以通过从应用程序上下文中加载来使用。
我仍然想创建一个存根服务来替换它们,但是这次我将存根定义为@Primary 的旧方法不起作用,因为已经有一个主要实现。基本上我需要的是一种在设置存根配置文件时不加载主 bean 的方法,但我不知道如何做到这一点。网络搜索或其他 Stack Overflow 问题似乎没有帮助。
java - 使用弹簧配置文件时自动装配 bean 到 TestNG 测试的问题
我目前正在完善我们拥有的测试框架。对于当前的需求,我们必须支持多个弹簧配置文件,并多次运行我们的测试,每次使用不同的配置文件。每个配置文件都针对不同的测试环境,因此可以执行具有不同逻辑的不同测试集。
我有一个这样的测试课:
这里,ProfileSpecificBean
是一个接口,由不同的类实现。要注入的实际实现由活动的 Spring 配置文件决定,我使用的是 Spring XML 上下文。我正在使用-Dspring.profiles.active=profileName
命令使用 Maven 构建项目,因此期望测试能够捕获通过的配置文件。
但是,当前测试在完整堆栈跟踪中失败并出现此错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到依赖项的 ProfileSpeciticBean 类型的合格 bean:预计至少有 1 个符合自动装配候选资格的 bean,找到 0
在对这个主题进行了一些研究之后,我发现AbstractTestNGSpringContextTests
期望@ActiveProfiles
在测试类之上有一个注释。所以,这段代码有效:
这样做的问题是:我想避免在我的类中硬编码配置文件名称。我需要为不同的配置文件运行相同的测试类,只需更改命令行脚本。
以上可能吗?有没有办法让 TestNG 知道命令行配置文件,并重新使用相同的测试?我需要避免重复代码和配置以使我的测试运行,因此为每个配置文件创建两个测试类不是我想要的。
java - 如何使用 Maven 配置文件设置弹簧活动配置文件
我有一个使用 maven 作为构建工具的应用程序。
我正在使用 Maven 配置文件来设置来自不同配置文件的不同属性。
我想做的是,maven 中的所有活动配置文件也将被移植到 spring 活动配置文件中,因此我可以在 bean 签名(@profile
)中引用它们。但我不知道该怎么做。
例如:考虑以下 Maven 设置
假设我运行 maven 时没有指定我希望 spring 拥有的任何其他配置文件profile1
并 development
作为活动配置文件。
java - 弹簧配置文件没有从服务器环境中选择属性值的问题?
我已将 spring.profiles.active 环境变量配置到 websphere 服务器中,并将变量值配置到 spring 配置文件中。我的 Config.xml 就像
在将应用程序部署到 WAS 时遇到异常就像:
如果我错过了什么,请告诉我?
spring - spring profile not activated on STS tc Server
I have a project with Spring profile
In my web.xml, i have
to set the default spring profile.
I build the maven project with
Then, I choose the option Run As -> Run on Server to deploy the maven project to tc Server.
However, the active profile is still dev.
What is the correct way to activate a spring profile on tc Server
java - 如何覆盖类路径之外的弹簧活动配置文件?
我希望能够application.properties
在类路径之外放置一个(例如 on d:/
),并在那里定义spring.profile.active=production
.
如果这被激活,spring 应该另外从类路径加载一个名为my-production.properties
.
我尝试了以下方法,但没有奏效。我可能忘记了什么?
d:\my.properties:
我的默认属性:
我的生产属性:
应用程序:
java - 在运行时对弹簧配置文件进行故障排除
我目前正在维护一个遗留代码库,其中在应用程序上下文中指定了以下 Spring 配置文件配置:
问题是:我如何阅读此示例中指定的内容spring.profiles.active
?
我认为这里有 4 种可能的配置文件定义是否正确?即:
有没有办法打开日志记录以查看选择了哪个配置文件以及为特定配置文件加载了哪些 bean?如果没有,为什么他们没有被加载?
我正在浏览这篇博客文章和我能找到的任何其他类型的文档,但我没有找到任何特定于上述配置文件规范语法的内容。有没有可用的文档?
谢谢!
java - Spring 环境配置文件和 JPA
我想在我的 Spring JSON API 应用程序中实现环境配置文件来处理多个环境、开发、测试、生产。我见过诸如Unable to use JNDI DataSource by Tomcat in Spring 之类的例子?. 此时我真的只需要处理不同的数据库设置,但稍后我可能需要根据环境进行额外的 bean 配置。
我的 persistence.xml 目前看起来像这样。
我见过不同的例子,所以我有点困惑如何实现。
还可以使用 Tomcat 数据源配置吗?如果是这样,它如何知道要使用哪个配置文件?
如何为多个环境配置 persistence.xml?jdbc 连接道具是否应该在 persistence.xml 中
如何在不重新编译的情况下设置活动配置文件?
spring - 使用带有回退的 Spring 配置文件
我在SPRING_PROFILES_ACTIVE
本地 linux 机器上设置了环境变量:
在我的 servlet 初始化程序中,我设置了一个默认配置文件,因为我没有通过扩展AbstractDispatcherServletInitializer
和覆盖在我的生产机器上设置任何变量createRootApplicationContext
:
这就是输出:
为什么没有有效的个人资料?
更新
具有 TRACE 级别的日志输出:
更新 2
我通过在以下位置创建文件导出了环境变量/etc/profile.d
:
spring - 关于@EnableMongoRepositories 的说明
我正在尝试使用 @EnableMongoRepositories 来使用两个单独的 mongo 存储库,例如:
和
但我因为这个错误而感到困惑:
据我了解,只有一个选项可以修复它是使用@Profile。我正在使用 maven 进行配置文件管理,但不确定为什么我需要代码中的核心配置文件...
谁能帮我解决误解?谢谢。