我正在尝试从application.yml.中检索值下面的最后一行显示kafkaConfig为null,无法读取。如何正确设置Kafka配置和代码以从json文件中读取?我们使用@Data而不是getters/setters。
KafkaConfig.java
@Configuration
@ConfigurationProperties("kafka")
@Data
public class KafkaConfig {
private String topic;
private String event;
}
应用yml公司
kafka:
topic: "testTopic"
event: "testEvent"
KafkaProducerBeans.java
@Component
public class KafkaProducerBeans {
@Autowired
private KafkaConfig kafkaConfig;
public KafkaProducerBeans(KafkaConfig kafkaConfig) {
this.kafkaConfig = kafkaConfig;
}
@Bean(name = "kafkaTestClient")
public String getData() {
return kafkaConfig.getTopic(); // final line is creating null for kafka Config
}
资源:https://codingnconcepts.com/spring-boot/spring-configuration-properties-using-yml/
@组件扫描(basePackages=“PATH”)
PATH:您希望它查找的包路径
@ComponentScan(basePackages ="PATH" )
@Configuration
@Import(value = {
KafkaProducerBeans.class
})
public class AppConfig{
}
在类KafkaConfig
上添加一个注释@EnableConfigurationProperties
KafkaConfig.java
@Configuration
@EnableConfigurationProperties // new added annotation
@ConfigurationProperties("kafka")
@Data
public class KafkaConfig {
private String topic;
private String event;
}
我认为将属性绑定到pojos的推荐方法是使用@EnableConfigurationProperties
注释,如下所示:
KafkaConfig.java
@ConfigurationProperties("kafka")
@Data
public class KafkaConfig {
private String topic;
private String event;
}
KafkaProducerBeans.java
@Component
@EnableConfigurationProperties(KafkaConfig.class)
public class KafkaProducerBeans {
private final KafkaConfig kafkaConfig;
@Autowired
public KafkaProducerBeans(KafkaConfig kafkaConfig) {
this.kafkaConfig = kafkaConfig;
}
// [...]
}
有关更多详细信息,请参阅Spring官方文档:
java.lang.IllegalArgumentException:无法解析字符串值“${cors.hosts.allow}”中的占位符“cors.hosts.allow” 当我这样更改文件时,属性可以被读取,但它自然不包含列表,而只包含一个条目: (我知道我可以将值作为单行读取,并将它们按拆分,但我还不想采用变通方法) 这也不起作用(尽管我认为根据snakeyamls文档,这应该是有效的):
我想创建一个yaml文件,从中获取常量 ConstantConfiguration。yml公司 配置类如下所示: 这是一个我想要如何使用它的虚拟示例 <代码>恒定属性。getMyList()始终为空我使用的是spring boot:2.5.12和java 11
根据Spring Boot integration tests不读取属性文件的建议,我创建了以下代码,目的是从我的JUnit测试中的属性读取映射。(我使用的是yml格式,并且使用@configurationproperties而不是@value) 我的测试配置(在application-test.yml中): 奇怪的是,弦“起作用了!”从配置文件中成功读取,但未填充映射。 注意:添加映射设置程序会
使用Spring Boot 1.3.0.Release 编辑:一种工作方法是手动操作:
demo.yaml definitions.yaml文件数据 我想读取 yaml 文件及其折射数据。 输出结果={content':{application/json':{'schema':{'title':'YamlTitle','type':'object','properties':{'name':{'type':'string','minLength':10,'example':'GANE