我想知道是否有一种方法可以解析可用于 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>-->
最佳答案
您应该能够将属性注入(inject)位置属性,然后使用构建工具来控制使用哪个属性文件。
<mvc:resources mapping="/photos/*" location="${baseContentPath}/photos/"></mvc:resources>
然后,为每个目标操作系统创建一个属性文件(例如 linux.properties 和 windows.properties),并在每个文件中设置 baseContentPath
的值:
baseContentPath=C:/software
接下来,让您的构建确定目标平台并包含正确的属性文件。 (如果您需要这方面的帮助,我认为这可能应该是一个单独的问题;我们需要大量有关您的项目结构以及您正在使用的构建工具的详细信息。)
另一方面,也许您想要构建一个无论部署在什么平台上都可以运行的单一 WAR?在这种情况下,事情会变得有点复杂,并且在使用基于 XML 的配置时我无法理解。如果您转换为基于注释的配置,这将非常容易(我全心全意地鼓励所有 Spring 用户放弃基于 XML 的配置!)。
关于java - Spring OS 依赖映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58417112/