[英]No Bean Found in Spring Boot application context
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@Configuration
@ConfigurationProperties("promotion")
public class PromotionConfig {
private AppClientConfig appConfig;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AppClientConfig {
private int readTImeout;
private int writeTimeout;
}
当我尝试执行 @Autowire PromotionConfig 时,它会抛出一个错误,即找不到 AppClientConfig 的合格 bean。
我知道这个错误即将出现,因为我在 AppClientConfig 中没有 @Component。
我怎样才能让它工作而不在 AppClientConfig 中添加 @Component。 我想保留普通的 POJO 类。
我的 local.yml 文件
promotion:
appConfig:
readTImeout: 10
writeTimeout: 10
使用 Spring,您还有另一种方法:使用Bean
配置:
@Bean
public AppClientConfig configureAppClientConfig(){
return new AppClientConfig(); // You can use your own way to create the instance
}
注意:上面的bean配置应该在一个Spring配置类中实现。
最后,您需要使用@Autowired
调用:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@Configuration
@ConfigurationProperties("promotion")
public class PromotionConfig {
@Autowired
private AppClientConfig appConfig;
}
您可以在非 spring 类中静态加载 spring bean:
PromotionConfig PromotionConfig = ApplicationInitializer.getAppContext().getBean(PromotionConfig.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.