有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

来自Yml文件的java Spring引导和属性数据

我的Spring boot应用程序无法使用应用程序中的properties对象创建bean。yml

以下是我所做的:

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中为空

我做错了什么


共 (2) 个答案

  1. # 1 楼答案

    将配置文件更新为:

    @Configuration
    @EnableConfigurationProperties()
    @ConfigurationProperties(prefix = "statsd")
    public class StatsdProperties  {
      private String host;
      private int port;
    
      .... getters & setters
    }
    
  2. # 2 楼答案

    您需要在MyClass中启用配置:

     @Component
     @EnableConfigurationProperties(StatsdProperties.class)
     public class MyClass