Tag: spring profiles

刷新Spring的属性占位符机制

我有一个Spring上下文xml文件和一个由PropertyPlaceholderConfigurer机制创建的特定bean。 我的问题是:当应用程序正在运行相关的属性文件更改时,我不想重启应用程序。 我想重新加载相关的bean没有重启应用程序。 什么是我的目标的最佳解决方案?

如果我在配置类上使用@ActiveProfiles注释而不是在定义我的bean的类上使用它,那么在Spring中会发生什么?

我正在攻读Spring Core认证,我对将配置文件用于JUnit测试有一些疑问。 所以我知道如果我按以下方式编写一个类: @Profile(“stub”) @Repository public class StubAccountRepository implements AccountRepository { private Logger logger = Logger.getLogger(StubAccountRepository.class); private Map accountsByCreditCard = new HashMap(); /** * Creates a single test account with two beneficiaries. Also logs creation * so we know which repository we are using. */ public StubAccountRepository() { logger.info(“Creating ” + getClass().getSimpleName()); Account account = […]

如何从系统变量设置Spring配置文件?

我有一个使用另一个项目的Spring项目。 每个项目都有自己的spring profile,使用applicationContext.xml和*.properties为每个配置文件初始化java代码。 我从args[]注入配置文件。 问题是第二个项目使用 applicationContext.xml env的默认配置我无法将args[]的env注入第二个项目,我试着找一篇文章来解释Spring profile的工作原理。 在applicationContext.xml未配置默认值时,是否存在将查看配置文件的层次结构? System var是否比applicationContext.xml配置更强大? 您认为什么是我挑战的最佳解决方案? 有关该主题甚至实例的文章将非常受欢迎!! 提前致谢。

方法级别的Spring配置文件?

我想介绍一些只在开发过程中执行的方法。 我以为我可能会在这里使用Spring @Profile注释? 但是如何在类级别上应用此批注,以便仅在属性中配置特定的配置文件时才调用此方法? spring.profiles.active=dev 将以下内容作为伪代码。 如何才能做到这一点? class MyService { void run() { log(); } @Profile(“dev”) void log() { //only during dev } }

如何在引导程序文件中正确设置不同的Spring配置文件(对于Spring Boot,以针对不同的云配置服务器)?

每个环境都有不同的配置服务器。 每个Spring启动应用程序都应该以其相应的配置服 我试图通过在bootstrap.properties文件中设置配置文件来实现这一点,例如: spring.application.name=app-name spring.cloud.config.uri=http://default-config-server.com — spring.profiles=dev spring.cloud.config.uri=http://dev-config-server.com — spring.profiles=stage spring.cloud.config.uri=http://stage-config-server.com — spring.profiles=prod spring.cloud.config.uri=http://prod-config-server.com 然后我设置cla -Dspring.profiles.active=dev但是加载的配置服务器始终是文件中设置的最后一个(即prod配置服务器将在上面的设置中加载,然后如果删除prod,阶段将加载)。 是否可以为云配置服务器设置引导配置文件? 我按照这个例子,但似乎无法使它工作。 对于它的价值,这些配置文件非常适合加载正确的配置(即,如果dev配置文件处于活动状态,则会加载app-name-dev.properties),但不会从正确的配置服务器中提取。

修改活动配置文件并在Spring Boot应用程序中刷新ApplicationContext运行时

我有一个Spring启动Web应用程序。 使用@Configurable注释通过java类配置应用程序。 我介绍了两个配置文件:’install’,’normal’。 如果安assembly置文件处于活动状态,则不会加载任何需要数据库连接的Bean。 我想创建一个控制器,用户可以在其中设置db连接参数,完成后我想将活动配置文件从’install’切换到’normal’并刷新应用程序上下文,这样Spring就可以初始化每个需要的bean数据库数据源。 我可以从代码中修改活动配置文件列表,没有问题,但是当我尝试刷新应用程序上下文时,我得到以下exception : `java.lang.IllegalStateException: GenericApplicationContext does not support multiple refresh attempts: just call ‘refresh’ once` 这是我启动Spring启动应用程序的方式: `new SpringApplicationBuilder().sources(MyApp.class) .profiles(“my-profile”).build().run(args);` 有没有人知道如何启动春季启动应用程序让你多次刷新应用程序上下文?