无法从spring启动应用程序中的非默认位置加载Ignite-config spring-bean定义



我正试图将我的点火配置外部化到我的春季启动应用程序中,这样就可以在不重建jar的情况下更改配置。

以前,该文件位于src/main/regroup中,并通过注释加载。

@ImportResource("IgniteConfig.xml") and 
@Autowired 
private IgniteConfiguration cfg;

当我将IgniteConfig.xml移动到位于excutable jar旁边的config文件夹时,上面的操作停止了,我尝试了以下操作,但没有成功:

  1. 使用--spring.config.location参数。我可以看出,这是在运行时其他配置工作时发现的,但上面的ImportResource注释表示找不到IgniteConfig.xml文件。

  2. 使用Ignition.start的相对路径(例如./config.InitionConfig.xml(。我使用此相对路径在日志中打印xml文件的文件内容,但当我将其传递给Ignition.start.时,它表示找不到该文件。我尝试过使用相对路径和绝对路径来实现这一点。

  3. 手动创建ApplicationContext并按bean名称获取配置。

ApplicationContext context = new ClassPathXmlApplicationContext("./config/IgniteConfig.xml");

这再次抱怨文件不存在,尽管我可以直接打开文件看到:

File igniteConfigFile = new File("./config/IgniteConfig.xml");

孔奇在这篇文章中的评论回答了我的问题:

"如果您想导入类路径之外的资源,语法为:

@ImportResource( { "file:path/spring-context1.xml", "file:path/spring-context2.xml" } ) 

">

在我的情况下,我只需要做:

@ImportResource( { "file:./config/IgniteConfig.xml" } )

相关内容

  • 没有找到相关文章

最新更新