问题标签 [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 - SpringBootTest 配置中忽略的 Bean
我有以下结构;
主配置类;
和两个独立的配置类;
测试如下;
使用这种结构,我对 bean 的测试定义EtcDao
和SomeBean
被忽略,并且使用这些 bean 的主要上下文定义(来自MainApplication.class
)。@SpringBootTest
但是,如果我在like中包含这些单独的配置@SpringBootTest(classes = {ConfigA.class, ConfigB.class})
,那么它可以正常工作。不允许@Include
初始化这些单独的配置类中的 bean?或者罪魁祸首是我MainApplication.class
和他们一起包含,但我需要其他配置,所以我必须以这种方式实现。
spring - Spring Boot 配置属性的未解决占位符验证
给定一些具有不可解析占位符的应用程序配置,如下所示application.yml
当我使用@Value
注释时,配置文件中的占位符会被验证,所以在这种情况下:
我得到一个IllegalArgumentException: Could not resolve placeholder 'missing-placeholder' in value "${missing-placeholder}/whatever"
. 这是因为该值是由直接设置的,AbstractBeanFactory.resolveEmbeddedValue
并且没有任何东西可以捕获抛出的异常PropertyPlaceholderHelper.parseStringValue
但是,为了转向@ConfigurationProperties
样式,我注意到缺少此验证,例如在这种情况下:
也不例外。我可以看到PropertySourcesPropertyValues.getEnumerableProperty
通过注释捕获异常// Probably could not resolve placeholders, ignore it here
并将无效值收集到其内部映射中。后续数据绑定不会检查未解析的占位符。
我检查了简单地将@Validated
and@Valid
注释应用于类和字段并没有帮助。
ConfigurationProperties
有什么方法可以保留在具有绑定的未解析占位符上引发异常的行为?
java - 在 SpringBoot 中将 yaml 映射到对象 hashmap
我正在尝试在我的 Spring Boot 应用程序中将 yml 文件映射到带有 String Key 和 PromotionPolicy 值的 HashMap,并使用默认的 Spring Boot 实现来解析这些值,但 PromotionPolicy 对象仅包含默认值 [0, false, false]对于我尝试从地图中读取值的所有情况。
我的 yml 是:
我的模型是:
组件java类如下:
尝试在此处显示值:
我的输出如下:
虽然我希望结果包含我的 yml 中的值。我还尝试在我的 yml 中删除“PromotionPolicy:”行,但没有运气。
请求帮助了解如何将 yml 映射到自定义对象的 Map 中。
maven - SpringBoot 多种配置
我有以下结构(maven)
家长:
- 通用(模块)
- 服务器(模块)
- 批次(模块)
- 全部(批处理、服务器)看到 Common
- Batch 看到 Server(和 Common 可传递:Batch -> Server -> Common)
对于 IntegrationTests 加载 ApplicationContext (需要弹簧上下文)我需要这样的东西:
Application.class 是主要的 SpringBoot 类(在 Common 模块中)
现在我想要批处理模块的其他@Configuration:
在上面的配置中,我无法在应用程序中导入 BatchConfiguration。
如何初始化bean:service1,service2?
spring-boot - Git 上的 Spring Boot 配置
我正在关注一个博客:
https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties
我正在使用 spring boot 开发服务,我想在运行时更改配置而不重新启动应用程序。
我已经运行了上述 github repo 中提到的代码。我无法理解示例服务如何了解配置服务。代码中没有任何内容将它们链接在一起。
此外,只有一个示例服务,但我有 10 个这样的示例服务,我如何为所有示例服务只使用一个配置服务
spring-boot-configuration - SpringBoot 外部配置
我正在尝试在 Spring Boot 项目中保留外部配置。所以我通过 a) 在 Git 上放置配置 b) 创建一个配置服务器来实现这一点。c) 应用程序从配置服务器获取配置。
但是我可以在不使用外部配置服务器的情况下实现这一点吗?我的意思是我的应用程序不能直接从 GIT 访问配置吗?
spring-boot - 多个外部配置 Sprintg 引导
我正在使用 Springboot 并基于这些开发 Web 服务。在我的服务中,我将配置保存在 git 而不是项目中,这样我就可以在运行时更改属性而无需重新启动应用程序。
我正在使用 ConfigServer 来获取配置,我的所有服务都是 Config Client。
但问题是我的配置文件是基于 -.properties 文件从 git 中获取的,因此例如。如果我的应用程序名称是 demo 并且活动配置文件正在测试,那么从 git 获取的配置文件是 demo-testing.properties。
但问题是我想拥有多个配置文件。那么我应该如何提及第二个配置文件呢?第二个配置文件也对其他服务通用吗?
所以实际上我想对位于 git 的许多服务使用相同的配置文件?
spring-boot - SPring Boot Services 之间的共享配置(在 git 上)
我正在开发 Spring Boot 服务。
所以假设我有 3 个服务 A、B、C,每个都有 dev 和 prod 配置文件。现在我将这些服务的配置保存在 GIT 并使用配置服务器来获取配置。
因此,当我在 prod 模式下运行 A 服务时,配置文件 A-prod.properties 正在被使用。
现在我想保留一些通用配置,所有 3 个服务都会使用这些配置,比如 common-prod.properties。我该怎么做?
我试过这个:
配置服务器:
我的属性是文件按以下顺序在 Git Repo 中:
java - Spring Boot 配置处理器,前缀的重复 @ConfigurationProperties 定义
在 Spring Boot 应用程序中,我想使用@ConfigurationProperties
具有相同前缀的注释来根据配置文件配置我的两个数据源。为什么 Spring Boot 配置处理器禁止它?gradle报错是:
笔记:
- “运行方式-> Spring Boot App”在 STS 中有效
- 没有 spring-boot-configuration-processor 依赖,gradle build 工作(但
When using @ConfigurationProperties it is recommended to add 'spring-boot-configuration-processor' to your classpath to generate configuration metadata
出现警告)
构建.gradle
应用程序属性
你好。申请
提前致谢
docker - 部署到 Docker 时外部化 Spring Boot 属性
在我的 Spring Boot 应用程序中,我想将属性外部化以在 Docker 容器中运行。my-server/src/main/resources/application.yml
首次部署时,应用程序会按预期加载和使用当前所在的属性。一切正常。
但是,我的问题是我需要这些属性可以根据需要进行更新,因此我需要application.yml
在 Docker 容器上访问该文件一次。但是此时,它build/docker/
在运行buildDocker
任务之前不包含在目录中,因此在首次部署后不会被复制或访问。
因此,我尝试将 Yaml 文件复制到docker/
构建目录中,将其复制到可访问目录 ( /opt/meanwhileinhell/myapp/conf
),然后使用该spring.config.location
属性将配置的位置传递给我的 Dockerfile 中的 Jar:
查看在 Docker 容器上运行的命令,我可以看到这是预期的:
但是,当我更新此文件中的属性并重新启动 Docker 容器时,它并没有获取更改。文件权限为:
该文档指出:
配置自定义配置位置时,除了默认位置外,还会使用它们。在默认位置之前搜索自定义位置。
我似乎无法弄清楚我做错了什么或误解了什么,但可能更重要的是,这是为这种 Docker 场景外部化配置的正确方法吗?