Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalArgumentException:在上未找到ConfigurationProperties批注_Java_Spring_Spring Boot - Fatal编程技术网

java.lang.IllegalArgumentException:在上未找到ConfigurationProperties批注

java.lang.IllegalArgumentException:在上未找到ConfigurationProperties批注,java,spring,spring-boot,Java,Spring,Spring Boot,我正在context.xml中的项目(菜单提供者服务)中集成一个外部项目合同服务客户端。我使用SpringBoot在STS中运行我的项目,在启动SpringBoot应用程序时遇到以下错误 错误 context.xml文件 @EnableConfigurationProperties注释要求参数中提供的所有类都应使用@ConfigurationProperties注释 用@ConfigurationProperties注释类ContractClientConfig,它应该可以工作。简短说明: 删除

我正在context.xml中的项目(菜单提供者服务)中集成一个外部项目合同服务客户端。我使用SpringBoot在STS中运行我的项目,在启动SpringBoot应用程序时遇到以下错误

错误 context.xml文件
@EnableConfigurationProperties
注释要求参数中提供的所有类都应使用
@ConfigurationProperties
注释

@ConfigurationProperties
注释类
ContractClientConfig
,它应该可以工作。

简短说明:
  • 删除@EnableConfigurationProperties注释
  • init config属性将POJO直接作为bean
  • 参考:


    细节: 从外部(以及本地)项目重用configurationpropertes的更好方法是在@Configuration类中显式初始化属性对象。因此,您不需要任何@EnableProperties或@ConfigurationProperties注释。尤其是在外部项目中,您无法控制

    上面的代码片段假设了两件事:您的应用程序.yml具有
    app.my菜单。*
    属性:

    app:
      my-menu:
        text: "Help"
        path: "/help/index.html"
    
    POJO属性类具有与属性名称相同的setter:

    public class MenuProperties {
      public String text;                           // getters are optional
      public String path;
    
      public void setText(String v) { text = v; }   // setters is a must
      public void setPath(String v) { path = v; }
    
    @SpringBootApplication
    @EnableConfigurationProperties({ MenuProviderServiceConfig.class, CreateRatesConfig.class,CommonConfiguration.class, ContractClientConfig.class })
    @Import({
        CommonConfiguration.class
    })
    @ImportResource({ "classpath:/menu-provider-service/context.xml" })
    public class MenuProviderServiceApplication
    
      @Bean
      @ConfigurationProperties(prefix = "app.my-menu")   // spring will get app.my-menu.* properties 
      MenuProperties menuConfig() {                      // and will set them into
        return new MenuProperties();                     // the returned object
    
    app:
      my-menu:
        text: "Help"
        path: "/help/index.html"
    
    public class MenuProperties {
      public String text;                           // getters are optional
      public String path;
    
      public void setText(String v) { text = v; }   // setters is a must
      public void setPath(String v) { path = v; }