首页 > 解决方案 > 为使用 @ConfigurationProperties 注释的类获取 NoSuchBeanDefinitionException

问题描述

我有一个使用@ConfigurationProperties 注释的类的外部库。但是,当我在我的项目中使用它时,它会给出NoSuchBeanDefinitionException. 我该如何解决这个问题?

层次结构看起来像这样

@Test //class where I am trying to autowire B
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {config.class})
public class A extends AbstractTestNGSpringContextTests {

@Autowire
private B b;
}
...}
@Configuration
@Import({config2.class})
public class B extends AnotherClass {...}
//cannot edit these files
public abstract class AnotherClass extends AbstractConfig {
//cannot edit these files
@Configuration
@Import({C.class})
@EnableConfigurationProperties({xyz.class})
public abstract class AbstractConfig extends WebMvcConfigurationSupport implements AbstractConfigInterface {..}
//cannot edit these files
@Configuration
@EnableConfigurationProperties({Properties.class})
public class C {
    public C() {
    }
}
@ConfigurationProperties(
    prefix = "abc"
)
public class Properties {...}

我得到的例外是Unsatisfied dependency expressed through field 'Properties'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com....Properties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

有人能帮忙吗?

标签: javaspringspring-boot

解决方案


推荐阅读