我正在尝试以编程方式创建 AnnotationConfigApplicationContext。我在 Spring XML 文件中获取配置类列表和属性文件列表。
使用该文件,我可以使用 XmlBeanDefinitionReader 并很好地加载所有 @Configuration 定义。但是,我无法加载属性。
这就是我正在做的加载属性..
PropertiesBeanDefinitionReader propReader = new PropertiesBeanDefinitionReader(ctx);
for (String propFile : propertyFiles) {
propReader.loadBeanDefinitions(new ClassPathResource(propFile));
}
代码只是在没有任何问题的情况下运行,但是一旦我调用 ctx.refresh() - 它就会引发异常
Caused by: java.lang.IllegalStateException: No bean class specified on bean definition
at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClass(AbstractBeanDefinition.java:381)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)
所有类都在类路径上可用,如果我只是不以编程方式加载上述属性,应用程序就可以正常运行(因为我正在使用其他方式加载属性)。
不确定,我在这里做错了什么。有任何想法吗?谢谢。