【问题标题】:Workaround to using @ImportResource for XML config files对 XML 配置文件使用 @ImportResource 的解决方法
【发布时间】:2024-10-30 04:20:01
【问题描述】:

我正在开发一个在通过 XML 配置的 Spring Boot 上运行的应用程序。对于模块化,我不想使用@ImportResource,因为它要求我在 XML 配置中进入源代码,我可以配置 XML 文件来更改依赖项。

问题是我使用 Spring Boot 来运行我的 Spring MVC 控制器 (@Controller) 并且为了使用我在 XML 文件中配置的依赖项,我需要声明@ImportResource,我不想使用。

在我的 Spring MVC 控制器中仍然使用 XML 配置文件注入依赖项的同时不使用 @ImportResource 是否有任何解决方法?

【问题讨论】:

  • 提示:@ImportResource 也可以采用模式/通配符...也与 XML 或 Java 无关,您可以通过基于 Java 的配置实现相同的效果。

标签: java spring spring-mvc spring-boot jakarta-ee


【解决方案1】:

如果您使用的是 Spring Boot,并且可以在应用程序属性中提及配置位置,则可以在 application.properties 中执行此操作

config:
  location: file:///config.xml

你可以在你的@ImportResource中使用这个属性

@ImportResource("${config.location}")

这样您可以避免更改源代码,同时仍然使用 xml 配置。

【讨论】:

  • 这似乎没问题。如何对多个位置执行此操作?
  • config.location[0]: location1,config.location[1]: location2。也许这会有所帮助:*.com/a/46185767/5189158
  • 很抱歉,@ImportResource 无法识别我设置的不同 config.locations。
  • 没关系。我所做的是我只使用了一个 XML 配置文件,所有其他配置文件都可以加载到其中。但是还是谢谢你! [*.com/questions/5113579/…