【问题标题】:Spring OS dependent mappingSpring OS 依赖映射
【发布时间】:2019-10-16 15:42:33
【问题描述】:

我想知道是否有办法解决可用于 Windows 和 Linux 的映射。这些是 mvc.xml 的两条独立行,但如果可能的话,我希望它能够“同时”工作,依赖于服务器操作系统。感谢您的宝贵时间。

<mvc:resources mapping="/photos/*" location="file:///C:/software/photos/"></mvc:resources> 
<!-- <mvc:resources mapping="/photos/*" location="file:/tmp/photos/"></mvc:resources>-->

【问题讨论】:

  • 请用 和 / 发布实际的 XML。全部缩进四个空格,以便格式化为代码。
  • 最好将照片移动到网络应用程序中。在你的情况下这可行吗?然后你可以使用location="classpath:photos"并将它们放在WEB-INF/photos中。
  • 我认为这也是解决问题的好方法,我会问我的团队是否可以更改位置。感谢您的宝贵时间,我会尝试所有答案。

标签: java spring-mvc web-applications


【解决方案1】:

您应该能够将属性注入到 location 属性中,然后使用您的构建工具来控制使用哪个属性文件。

<mvc:resources mapping="/photos/*" location="${baseContentPath}/photos/"></mvc:resources> 

然后,为每个目标操作系统创建一个属性文件(例如 linux.properties 和 windows.properties),并在每个中设置 baseContentPath 的值:

baseContentPath=C:/software

接下来,让您的构建确定目标平台并包含正确的属性文件。 (如果您需要这方面的帮助,我认为这可能应该是一个单独的问题;我们需要有关您的项目结构和您正在使用的构建工具的大量详细信息。)

另一方面,也许您想构建一个无论在哪个平台上都可以工作的单一 WAR?在那种情况下,事情会变得有点复杂,而且我在使用基于 XML 的配置时已经超出了我的深度。如果您转换为基于注释的配置,这非常容易(我衷心鼓励所有 Spring 用户放弃基于 XML 的配置!)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2013-02-16
    • 2018-10-03
    • 2022-06-10
    • 2013-03-17
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多