问题标签 [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.

0 投票
0 回答
343 浏览

java - 爪哇。春天。如何注册自己的类名属性

我已经花了几天时间寻找在我的属性类(注释为@ConfigurationProperties)中定义字符串属性的方法,该属性将是类的名称,实现指定的接口。就像 spring.datasource.driver-class-name 一样。

如果您的代码包含 java.sql.Driver 实现(或者您对 impls 有多个依赖项),那么当您编辑 application.properties 文件时,idea 会帮助您从实现列表中选择驱动程序

我想要同样的。

我把完成的项目放在这里:https ://github.com/ibelozor/test-spring-properties (kotlin, gradle)

我定义服务:

,实施[s]:

, 特性:

,所以我可以将我的服务用作 bean(这很好用):

但是当我编辑
spring.datasource.driver-class-name 的 application.properties 文件案例时,我希望这个想法建议我实现我的界面: 我的案例 - service.class-name=... 没有建议: spring.datasource.driver-class-name 的情况

我的案例 - service.class-name=... 没有建议

0 投票
0 回答
572 浏览

spring - Spring @Validated 注解防止 @ConfigurationProproperties 值注入,为什么?

我正在尝试,@ConfigurationProperties我发现了两件事:

  • 为了使测试正常工作,我必须将配置属性文件(yml)放入test包中;需要设置器和空的构造器。
  • 如果我用 注释该类@Validated,则注入将失败并显示所有null值。

如果你说第一个可以理解,第二个呢?为什么?

目的是验证配置属性注入,以便在应用程序启动时不应该缺少关键属性值。

我有这个 yaml 来映射:

我有这个类来映射嵌套配置:

而且,它的界面:

ConfigurationEsConfigurationFr都是以下的子类:

Merchant1并且Merchant2是 的子类:

当我尝试在没有第一类的情况下注入一些@Autowired测试时,它可以工作(并且在 yml 文件中有值)@Validatedfres

在此处输入图像描述

当我添加@Validatedfr并且es为空时。

测试:

0 投票
1 回答
2545 浏览

spring - 如何在 Kotlin 中使用 @ConfigurationProperties

我有这个自定义对象:

现在我想用我的自动装配它application.yml

使用这个类:

在添加之前Pair它工作正常,但在我得到之后Reason: lateinit property pair has not been initialized

这是我的main

使用 java 我已经完成了这个,但是我看不到这里缺少什么。

0 投票
1 回答
502 浏览

spring-boot - ConfigurationProperties 不适用于 @Getter 和 @Setter

我正在尝试@ConfigurationProperties与 lombok@Getter@Setter.

如果我手动定义 getter 和 setter 一切正常。如果我删除实际的 getter 和 setter 并添加@Getter@Setterspring 找不到任何 getter 和 setter。

有什么想法我可能会错过吗?

0 投票
1 回答
553 浏览

spring-boot - 如何使 ConfigurationProperties bean 和 @FeignClient 接口中的验证注释一起工作?

假设我有这个 application.yml(它将依赖于环境,例如通过 Spring 配置文件):

和匹配的 Java 风格的配置属性类:

我想要某种客户端作为我的远程 url:

不幸的是,我无法进行验证工作,MyRemoteProperties例如当app.remote.url属性为空白(空)时,应用程序无法启动(Spring 在连接MyRemotebean 时失败)并且我收到此错误:

原因:java.lang.IllegalStateException:没有定义负载平衡的假装客户端。您是否忘记包含 spring-cloud-starter-netflix-ribbon?

(而且我不想要负载平衡;我认为这是因为 URL 在某些时候是空的,然后它需要一些负载平衡器配置,因此错误消息中的 Ribbon 在这里)。

或者我不知道如何将它插入 MyRemote 接口的配置,例如我也尝试过:

但同样的结果。

我如何让这个验证工作起作用?

pom.xml

在调用接口的某个时刻:

0 投票
1 回答
61 浏览

java - 哪个 Spring Boot @ConfigurationProperties 注释 bean 拥有 spring.profiles.active 属性?

我不想以这种方式检索此属性:

我想知道是否实际上有一个 Spring Boot 属性 bean - 即带有注释的@ConfigurationProperties- 它包含spring.profiles.active(这是一个 Spring 属性,而不是 Spring Boot 的)。

就像我们拥有例如SecurityProperties持有spring.security前缀一样。

谢谢。

0 投票
2 回答
749 浏览

spring-boot - 不绑定 ==> Consul KV + Kotlin Spring Boot @ConfigurationProperties @ConstructorBinding

我需要将我们的 application.yml 配置移动到 Hashicorp 的 Consul。我创建了一个简单的 Spring Boot 应用程序来完成所需的更改。它将配置数据从 application.yml 加载到强类型类。

但是,在注释掉 application.yml 文件并在 bootstrap.yml 文件中启用 consul 后,当我尝试访问 Consul KV 中的相同配置时,它在我的系统上作为 Docker 映像运行,配置数据始终为空. 我一定错过了一些简单的东西,但我完全不知道它是什么。以下是相关信息。

0 投票
3 回答
1178 浏览

spring - 加载测试 application.yml 属性

我在src/test/resources/application.yml. 但我无法在我的单元测试中加载这些值。我有以下课程:

在生产代码中,从/src/main/resources/application.yml.

单元测试类:

我试图为test每个文件添加一个配置application.yml文件以查看添加是否@ActiveProfiles("test")有效,但它没有。

src/main/resources/application.yml & src/test/resources/application.yml

我还创建了一个 TestConfiguration 类,该类创建SnmpPropertiesbean 并使用以下命令将其自动装配到测试类中@EnableConfigurationProperties(TestConfiguration::class)

再一次,不去了。我得到的错误是:

0 投票
1 回答
727 浏览

java - 在嵌套的 java Spring 配置属性类中,可以使用父级的值来初始化子级吗?

我有一个 SpringBoot 2、Kotlin/Java Web 服务,它使用 @ConfigurationProperties 加载一组嵌套的类/属性以供在运行时使用。除了一件事之外,一切都正常工作:我无法弄清楚如何将值(代码)从父类(TenantProperties)传递给它的嵌套子类(DatabaseProperties)。在下面的片段中,它是从另一个具有适当注释的父级中提取的,我试图让 TenantProperties 中的代码在构造时传递给 DatabaseProperties。无论我尝试了什么,父母总是将 null 传递给孩子。我会很感激任何建议。

0 投票
1 回答
2049 浏览

java - 对多个 Bean 使用 Spring Boot 2.2.0 的 @ConstructorBinding

所以我对新@ConstructorBinding功能感到非常兴奋,但我对它如何与@ConfigurationProperties. 可以通过更改前缀来声明具有配置属性的多个相同类型的bean,例如:

但据我从文档中可以看出,构造函数绑定方法要求您直接注释类型,这(我相信)必然会阻止您将一个类的多个实例注入配置属性。

这是期望得到支持的东西吗?它是否已经受支持并且我已经遗漏了一些东西?我想我理论上可以将构造函数绑定的类包装在另一种类型中,但它似乎有点hack-ish,如果可能的话我宁愿避免它。