我正在创建一个 Spring Boot 应用程序 A,同时使用注释和 XML 配置以及 config-starter-config 从 config-server 获取应用程序属性。应用程序正在使用 XML beans 文件从导入的模块 B导入其他 beans XML 。
一旦我添加了 spring-cloud-starter-config,应用程序就无法解析模块 B使用的属性。甚至能够从配置服务器正确获取属性。
错误:
osbfsDefaultListableBeanFactory:非惰性FactoryBean类型检查的Bean创建异常:org.springframework.beans.factory.BeanCreationException:创建名称为'connectionName'的bean在URL [jar:file:/C:/Subscriber.jar!/BOOT- INF/lib/IF.jar!/META-INF/jms-config-ref.xml]:init 方法调用失败;嵌套异常是 javax.naming.NoInitialContextException:无法实例化类:${InitialContext} [根异常是 java.lang.ClassNotFoundException:${InitialContext}]
创建设置以在没有spring-cloud-starter-config 的情况下运行应用程序并application.properties
从那时起提供属性时,它可以正常工作。
更新:主 xml 正在使用
@ImportResource("classpath:spring-sub-config.xml")
以及里面的起始内容
<beans .. xsd ns ..>
<context:property-placeholder location="file:///${CONFIG_PATH}/Subscriber.properties"/>
<context:component-scan base-package="com.sub, com.inte" />
<import resource="classpath:META-INF/inte-cmn-ref.xml" />
<import resource="classpath:META-INF/jms-config-ref.xml" />
...
</beans>
我希望这些 bean 解析从配置服务器中提取的属性。任何建议,我们如何使非懒惰 FactoryBean 上的 Bean 创建异常的初始化变得懒惰。PS:我已经尝试过lazy-init="true"
属性。