我的Spring启动应用程序无法使用application.yml中的properties对象创建bean。

这是我所做的:

application.yml:

statsd:
   host: 10.0.5.23
   port: 8125


我创建了一个StatsdProperties @Component类来保存上述数据:

@Component
@ConfigurationProperties(prefix="statsd")
public class StatsdProperties {
   private String host;
   private int port;

   .... getters & setters
}


我创建了另一个应该使用上述属性的@Component类:

 @Component
 public class MyClass{

   @Autowired
   private StatsdProperties statsdProperties;


   public MyClass(){
      statsdProperties.getPort()  <---  statsdProperties is null here
   }


并且statsdPropertiesMyClass中为null

我究竟做错了什么?

最佳答案

将配置文件更新为:

@Configuration
@EnableConfigurationProperties()
@ConfigurationProperties(prefix = "statsd")
public class StatsdProperties  {
  private String host;
  private int port;

  .... getters & setters
}

07-27 18:46