我正在开发一个Spring MVC项目,现在我需要将我的资源转移到s3桶,但我需要一种机制来方便地在本地和s3之间切换。 我在dispatcher-servlet.xml中有以下片段
例如。 对于同一项目上的文件
<mvc:resources location="/app-res/" mapping="/app-res/**"/>
对于本地驱动器上的文件,我可以
<mvc:resources location="file:D:/app-res/" mapping="/app-res/**"/>
我可以这样做
<mvc:resources location="http:path/to/s3/bucket" mapping="/app-res/**"/>
我尝试过这样做,但无法找到解决方案
答案 0 :(得分:0)
使用Spring Profiles是一种可能的解决方案:
参数化外部网址:
<mvc:resources location="${path.to.s3.bucket}" mapping="/app-res/**"/>
创建一些配置文件定义:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="...">
<beans profile="dev">
<bean id="applicationPropertiesPlaceholder"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:profiles/dev.profile.properties</value>
</list>
</property>
</bean>
</beans>
<beans profile="production">
<bean id="applicationPropertiesPlaceholder"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:profiles/production.profile.properties</value>
</list>
</property>
</bean>
</beans>
</beans>
创建属性文件,然后只需将-Dspring.profiles.active=xyz
附加到服务器的JVM args。