问题标签 [configurationproperties]
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 - @DataJpaTest:如何停止加载不需要的 @ConfigurationProperties
在 SpringBoot (2.2.1,2.2.2) 应用程序中,切片的 @DataJpaTest 不会运行,因为无法创建持有 @ConfigurationProperties 的 bean。
考试:
当我尝试运行测试时,我得到一个
没有可用的“foo.appconfig.AppInfoConfig”类型的合格 bean
foo.appconfig.AppInfoConfig
@Component
它被与测试无关的人引用。
使用foo.Application
的没有特殊注释
由于切片测试仅扫描某些组件(@DataJpaTest 的情况下为 @Entity 和 @Repository),因此不扫描“AppInfoConfig”。没关系,但是为什么要尝试将其注入到另一个既不是实体也不是存储库的控制器中?
如何启用 AppInfoConfig 的正确创建或完全禁用创建?
注意:@TestConfiguration
有一个@Bean
方法确实有效,但如果你有很多这些@ConfigurationProperties
类,它就不是很方便。
java - 是否可以使 Spring Boot 配置处理器与值是复杂结构的映射正常工作(在 Intellij IDEA 中)?
重现问题的源代码:链接。
假设我有这种配置属性的结构:
在application.yml
我以这种方式设置它们:
启动注释处理后,只有简单的属性才能正常工作(您可以通过单击导航到它们的声明,ctrl
它们也可以自动完成)。此外,IDEA 会检测属性是否不正确并突出显示。
对于嵌套结构(它们是映射值),这两个功能似乎都无法正常工作。您仍然可以单击它们,但 IDEA 将导航到地图声明。此外,地图值的代码完成和错误字段的突出显示不起作用。
IDEA的截图:
有人知道如何使它正常工作吗?随意使用随附的示例代码。
提前致谢。
spring - Spring 测试属性覆盖替换整个数组元素
我在用@ConfigurationProperties
测试属性
我正在使用以下配置运行测试:
问题是我得到了my.many[0].foo=null
,因为据我了解,Spring 将列表中的第一个元素完全替换为{foo: null, bar: "dd"}
请帮忙。
java - 使用列表类型覆盖 @ConfigurationProperties 中的 setter
我正在使用Spring Boot 1.5.15,并且在读取带有 annotation 的 bean 时遇到了一些麻烦@ConfigurationProperties
。
详细地说,我正在尝试使用以下 bean。
对应application.yml
的如下。
我面临的问题是成员permissionsSet
总是空的。我调试了应用程序,发现 Spring 使用以下工作流来创建 bean。
- 默认构造函数调用
- 使用空列表调用 Setter
- 在 setter 调用后为列表注入正确的值。
这是正确的行为吗?我试图在文档中找到任何参考,但我找不到任何东西。
有没有办法解决这个问题?
非常感谢。
java - 如何在 Spring 中使用带有点属性的 @Configuration 属性前缀映射属性文件?
我有一组属性如下:
...我想通过使用以下方式映射到这样的类@ConfigurationProperties(prefix = "spring.kafka.producer.edwh")
:
... 我能怎么做?
spring - 如果在使用 ConfigurationProperties 时未设置属性,Spring 不会抱怨
我有一个通过 ConfigurationProperties 配置的 bean:
application.yml
我通过但在“两个级别”中配置字段值。在默认的 application.yml 中,我只是将值设置为另一个属性的值:
在配置文件特定的 YML 文件中,我有:
我的期望是,如果我忘记指定属性,theValueOf.myBean.name
那么应用程序在启动时应该会失败,并显示无法解析占位符“theValueOf.myBean.name”的消息。相反,该字段name
被分配了值(字面意思)${theValueOf.myBean.name}
。
如果我用(并且不使用 ConfigurationProperties)注释该name
字段,并且忘记定义属性,那么应用程序在启动时会失败 - 正如预期的那样。@Value("${myBean.name}")
theValueOf.myBean.name
我的问题是:使用 ConfigurationProperties 时,如何使 Spring 在启动时失败并显示消息“无法解析占位符 ...”?
java - 带有@Bean 的@ConfigurationProperties 不会从类路径加载默认值
我在放置时面临以下问题@ConfigurationProperties
。@Bean
默认情况下,配置放置在库 jar 中的 application.yml 中:
MyConfigProperties.java - 简单的 pojo
应用程序.yml
在@SpringBootTest
同一个项目中它工作得很好。但是,如果我使用另一个项目中的库,我总是需要提供对myprefix.myproperty
我defaulValue
来说可以正常工作的库。
我的期望是,defaultValue
如果没有给出更高优先级的属性,则应该从 jar 中提供的 application.yml 中获取。
难道我做错了什么?
亲切的问候,
热那
spring - 在 spring application.properties 中展开时缺少 maven 属性的默认值
如果@property.absent@
中 定义的属性application.properties
无法扩展(未在 中定义pom.xml
),则绑定值是文字@property.absent@
。有没有一种简单的方法可以用自定义默认值(例如 null)覆盖它,尤其是。在自动配置中与@ConfigurationProperties
?
spring-boot - 一个 Spring Boot 应用程序中的所有 @value 注释
我正在尝试在我想创建 1 个 Spring Boot 服务的地方建立设计,该服务将在一个地方使用 @value 注释管理所有属性。然后需要使用这些道具的应用程序将连接到该服务并获取它运行时。此外,持有 @value 注释的应用程序将连接到配置服务器以使用刷新功能。这有可能实现吗?请建议。谢谢
spring - Kotlin application.yml 数据类寻找 bean
我有一个 Kotlin 数据类,我想从application.yml
文件中读取属性。这是我的数据类:
然后我将它添加到我的配置类中:
我使用 just 访问值properties.serverId
并将对象传递给正在创建的其他 bean 的构造函数,例如这个:
但是,当我启动我的应用程序时,我收到一个错误,它没有尝试从 加载属性application.yml
,而是尝试为构造函数参数查找 bean:
Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'meanwhile.in.hell.myapp-meanwhile.in.hell.myapp.MyAppProperties': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Parameter 0 of constructor in meanwhile.in.hell.myapp.MyAppProperties required a bean of type 'java.lang.String' that could not be found.
我如何阻止我的应用程序认为这些参数是自动装配的?我知道在 Kotlin 中,这就是构造函数 Autowired bean 的样子(即,不需要注释),但是我在网上看到的所有关于如何读取application.yml
属性的示例看起来都与我的数据类相同。
Spring-Boot v2.3.0.RELEASE Kotlin v1.3.72