问题标签 [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.
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
而不是特定于配置文件。
如何将其配置为配置文件特定的外部配置?
kotlin - 如何将 SpringBootTest 的本地端口转发到测试配置
我目前正在为 SpringBootTest 实例的服务器端口注入而苦苦挣扎。我写了一个测试配置类,我想访问这个端口。
测试配置类:
测试看起来像这样:
现在的问题是,我总是收到配置类中端口的零值。因为我没有得到 null 这听起来像是在获取端口但错误的端口(我认为零是在春季为随机端口定义的)。到目前为止,MyIntegrationTest 类中的服务器端口评估工作正常。
有什么想法可以解决这个问题吗?
谢谢
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也是。
git - 如果从 git 存储库获取数据失败,则 Spring 配置服务器从本地机器读取属性
我是spring 配置服务器的新手。我想从我的应用程序中实现spring 配置服务器,我的配置服务器从git 存储库中获取属性详细信息,但如果我的git 服务器无法响应,我如何从本地机器读取属性?
注意:我只想从本地机器读取属性,以防我的 git 服务器无法响应。
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
你能告诉我我做错了什么吗?
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
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
标记绑定,但这也不起作用。任何这些设置中的客户端都试图连接8888
到cloud-config
. 可能我错过了弹簧自动配置的动作顺序。
我也尝试添加
和
但这些看起来都像黑客,实际上不起作用。
java - 将 HashMap 加载到嵌套配置 bean 会引发绑定异常
我正在尝试这里给出的这个例子: https ://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties
除了尝试添加另一个属性来加载哈希图值外,一切都运行良好
属性添加为:
在 Securiry 内部类中,添加了另一个变量,如下所示:
但这会引发错误:
有趣的是,如果我把它放在一个普通的(非嵌套的)配置类中,它对我来说很好。
这里出了什么问题,请有任何建议
spring-boot-configuration - 从 s 休息服务调用加载属性
在 Spring Boot 应用程序中,如何从 Rest 服务调用中加载属性,以使命令行参数可以覆盖这些属性?
我正在编写一个弹簧启动应用程序。它做的第一件事是调用休息服务来获取一些配置应用程序其余部分的数据,例如上次运行的日期和时间以及需要处理的内容列表。
特别是在开发过程中,能够从命令行覆盖此配置非常有用。我正在使用@Value 捕获命令行覆盖,并且有一些代码将返回那些优先于 Rest 配置的代码,但如果 Rest 服务作为外部化配置加载,例如 PropertySource,我不需要此代码。
任何人都可以推荐一种方法,甚至更好地指向我已经完成它的示例代码。
请注意,Rest 服务由 application.yml 配置。