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