问题标签 [spring-boot-configuration]

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.

0 投票
1 回答
1593 浏览

java - springboot 外部配置 - profile 特定配置

根据 SpringBoot 文档,配置顺序为:

打包 jar 之外的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)

打包在 jar 中的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)

打包 jar 之外的应用程序属性(application.properties 和 YAML 变体)。

打包在 jar 中的应用程序属性(application.properties 和 YAML 变体)。

在我的项目中,我有一个名为“prod”的配置文件和以下文件:

  • application.yml(在罐子里)
  • application-prod.yml(在罐子里)

而且我还想使用外部文件覆盖一些属性。由于根据文档, externalapplication.yml将被 internal 覆盖application-prod.yml,我需要确保将外部文件视为profile specific配置文件。

我曾尝试使用:

-Dspring.config.location=<my path>/application-prod.yml

我也试过:

-Dspring.config.location=file:<my path>/application-prod.yml

在所有情况下,我都从内部获得价值 application-prod.yml

如果我完全删除了内部配置文件,那么我会从外部获取值(所以我知道配置会获取文件)。

我了解此外部文件被视为与通用文件等效,application.yml而不是特定于配置文件。

如何将其配置为配置文件特定的外部配置?

0 投票
3 回答
2408 浏览

kotlin - 如何将 SpringBootTest 的本地端口转发到测试配置

我目前正在为 SpringBootTest 实例的服务器端口注入而苦苦挣扎。我写了一个测试配置类,我想访问这个端口。

测试配置类:

测试看起来像这样:

现在的问题是,我总是收到配置类中端口的零值。因为我没有得到 null 这听起来像是在获取端口但错误的端口(我认为零是在春季为随机端口定义的)。到目前为止,MyIntegrationTest 类中的服务器端口评估工作正常。

有什么想法可以解决这个问题吗?

谢谢

0 投票
1 回答
271 浏览

java - Spring boot webjars 未生成,返回 Http 406

由于某种原因,引导程序 webjar 没有被复制到目标中,因此无法找到它们。

pom.xml

资源处理程序:

在我静态的某个地方resources

在此处输入图像描述

什么都没有生成/target 任何想法我错过了什么?我花了几个小时在这上面,也到达了谷歌搜索的第二页。

0 投票
1 回答
804 浏览

spring-boot - SpringBoot excludeFilter 不适用于多个配置类

我正在开发一个依赖于另一个 springboot 应用程序的 springboot 应用程序。我想在父 springboot 应用程序中包含大多数 bean,但只有一个。

如何在不触及 ParentApplication 类的情况下排除父包已扫描的一个 springboot bean?

我尝试过但不起作用的方法:

1:在我的应用程序类中使用排除过滤来过滤掉特定的bean类。

2:我也试过同时排除bean类和父配置类。

3:在我要排除的bean类中添加DisposableBean接口,在运行时销毁。

下面是我的应用程序启动配置类和父类。

我的 MyApplication.class:包 com.myapp;

}

我的 ParentApplication.class

控制台打印出来:“configuration class created”,所以ParentApplication是springboot出于某种原因发起的,所以我要排除的Class也是。

0 投票
1 回答
670 浏览

git - 如果从 git 存储库获取数据失败,则 Spring 配置服务器从本地机器读取属性

我是spring 配置服务器的新手。我想从我的应用程序中实现spring 配置服务器,我的配置服务器从git 存储库中获取属性详细信息,但如果我的git 服务器无法响应,我如何从本地机器读取属性?

注意:我只想从本地机器读取属性,以防我的 git 服务器无法响应。

0 投票
2 回答
5845 浏览

java - java.lang.IllegalStateException:找不到@SpringBootConfiguration,您需要在测试中使用@ContextConfiguration

我们应该在 src 下创建单独的测试文件夹还是测试文件夹?

我的测试班位置是:server/test/com/cellpointmombile/mconsole/manualtrigger/ManualTriggerControllerTest.java

我正在为类 ManualTriggerController 编写 Junit,它的路径是:server/src/main/java/com/cellpointmobile/mconsole/controller/ManualTriggerController.java

我的主类,即 Application.java 位于以下位置: server/src/main/java/com/cellpointmobile/mconsole/app/Application.java

你能告诉我我做错了什么吗?

0 投票
2 回答
62718 浏览

spring-boot - 如何在 Spring Boot 2.1.0 启动器配置中将 spring.main.allow-bean-definition-overriding 设置为 true

我维护了一个 spring-boot-starter 来定制返回的错误属性,例如,一个未知的端点被调用。这是通过覆盖 org.springframework.boot.web.servlet.error.ErrorAttributes bean 来完成的。

2.0.6 一切正常,但2.1.0 默认禁用 bean 覆盖,导致启动器现在失败并显示以下消息。

在类路径资源 [com/mycompany/springboot/starter/config/ErrorsConfig.class] 中定义的名称为“errorAttributes”的无效 bean 定义:无法注册 bean 定义 [根 bean:类 [null];范围=; 摘要=假;懒惰初始化=假;自动线模式=3;依赖检查=0;自动接线候选=真;主要=假;factoryBeanName=com.mycompany.springboot.starter.config.ErrorsConfig;factoryMethodName=errorAttributes; 初始化方法名=空;destroyMethodName=(推断);在类路径资源 [com/mycompany/springboot/starter/config/ErrorsConfig.class]] 中为 bean 'errorAttributes' 定义:已经存在 [Root bean: class [null]; 范围=; 摘要=假;懒惰初始化=假;自动线模式=3;依赖检查=0;自动接线候选=真;主要=假;factoryBeanName=org.springframework.boot.autoconfigure.web.servlet。error.ErrorMvcAutoConfiguration; factoryMethodName=errorAttributes; 初始化方法名=空;destroyMethodName=(推断);在类路径资源 [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]] 中定义

如文档中所述,将 spring.main.allow-bean-definition-overriding 属性设置为 true 可以解决问题。我的问题是如何在启动器中执行此操作(我不希望启动器的用户必须更改他们的 application.properties 文件,以获取特定于我的启动器的内容)?

我尝试使用该文件中定义的属性对我的@Configuration 进行@PropertySource("classpath:/com/mycompany/starter/application.properties") 注释,但它不起作用。

我错过了什么?有什么方法可以让我的配置覆盖那个 bean?

这是配置的(简化的)源代码:

我的资源文件 com/mycompany/starter/application.properties 包含

spring.main.allow-bean-definition-overriding=true

0 投票
0 回答
253 浏览

java - 如何在共享库中创建共享弹簧配置

我想创建一个共享库,为我所有的 spring-boot Web 应用程序客户端提供默认配置。到目前为止,我已经成功地使用这个 SO answer创建了默认执行器配置。但是,我想提供以下三种配置:

客户端也成功连接到 eureka,并且配置服务器已启动并运行。

我有以下设置,适用于执行器默认配置:

com.livanov.test.DefaultActuatorConfiguration.java

META-INF/spring.factories

当我为spring.cloud.config.*属性执行相同的类时,它不起作用。我还尝试在spring.factories 中将它们与org.springframework.cloud.bootstrap.BootstrapConfiguration标记绑定,但这也不起作用。任何这些设置中的客户端都试图连接8888cloud-config. 可能我错过了弹簧自动配置的动作顺序。

我也尝试添加

但这些看起来都像黑客,实际上不起作用。

0 投票
1 回答
120 浏览

java - 将 HashMap 加载到嵌套配置 bean 会引发绑定异常

我正在尝试这里给出的这个例子: https ://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties

除了尝试添加另一个属性来加载哈希图值外,一切都运行良好

属性添加为:

在 Securiry 内部类中,添加了另一个变量,如下所示:

但这会引发错误:

有趣的是,如果我把它放在一个普通的(非嵌套的)配置类中,它对我来说很好。

这里出了什么问题,请有任何建议

0 投票
0 回答
23 浏览

spring-boot-configuration - 从 s 休息服务调用加载属性

在 Spring Boot 应用程序中,如何从 Rest 服务调用中加载属性,以使命令行参数可以覆盖这些属性?

我正在编写一个弹簧启动应用程序。它做的第一件事是调用休息服务来获取一些配置应用程序其余部分的数据,例如上次运行的日期和时间以及需要处理的内容列表。

特别是在开发过程中,能够从命令行覆盖此配置非常有用。我正在使用@Value 捕获命令行覆盖,并且有一些代码将返回那些优先于 Rest 配置的代码,但如果 R​​est 服务作为外部化配置加载,例如 PropertySource,我不需要此代码。

任何人都可以推荐一种方法,甚至更好地指向我已经完成它的示例代码。

请注意,Rest 服务由 application.yml 配置。