Spring:将配置文件放在Tomcat库中
目前我的spring上下文web具有bean定义:Spring:将配置文件放在Tomcat库中,spring,tomcat7,Spring,Tomcat7,目前我的spring上下文web具有bean定义: <bean id="myFile" class="org.springframework.core.io.ClassPathResource"> <constructor-arg value="META-INF/myfile.yml" /> </bean> 因此,myfile.yml我必须将部署的战争保持在内部。但是我想把myfile.yml保存在$TOMCAT_HOME
<bean id="myFile" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="META-INF/myfile.yml" />
</bean>
因此,myfile.yml我必须将部署的战争保持在内部。但是我想把myfile.yml保存在$TOMCAT_HOME/lib文件夹中,并从那里引用bean。
如何才能做到这一点?使用tomcat时,一些特定的路径会添加到类路径中。您可以在catalina中找到它们。以下属性的属性:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
因此,默认情况下,$TOMCAT_HOME/lib
位于类路径上,您可以这样简单地创建bean:
<bean id="myFile" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="myfile.yml" />
</bean>
因此,最终结果如下所示:
<bean id="myFile" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="#{systemEnvironment['TOMCAT_HOME']}/lib/myfile.yml" />
</bean>
使用tomcat时,一些特定路径会添加到类路径中。您可以在catalina中找到它们。以下属性的属性:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
因此,默认情况下,$TOMCAT_HOME/lib
位于类路径上,您可以这样简单地创建bean:
<bean id="myFile" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="myfile.yml" />
</bean>
因此,最终结果如下所示:
<bean id="myFile" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="#{systemEnvironment['TOMCAT_HOME']}/lib/myfile.yml" />
</bean>
使用tomcat时,一些特定路径会添加到类路径中。您可以在catalina中找到它们。以下属性的属性:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
因此,默认情况下,$TOMCAT_HOME/lib
位于类路径上,您可以这样简单地创建bean:
<bean id="myFile" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="myfile.yml" />
</bean>
因此,最终结果如下所示:
<bean id="myFile" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="#{systemEnvironment['TOMCAT_HOME']}/lib/myfile.yml" />
</bean>
使用tomcat时,一些特定路径会添加到类路径中。您可以在catalina中找到它们。以下属性的属性:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
因此,默认情况下,$TOMCAT_HOME/lib
位于类路径上,您可以这样简单地创建bean:
<bean id="myFile" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="myfile.yml" />
</bean>
因此,最终结果如下所示:
<bean id="myFile" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="#{systemEnvironment['TOMCAT_HOME']}/lib/myfile.yml" />
</bean>
我使用FileNotFoundException时收到FileNotFoundException:原因:java.io.FileNotFoundException:类路径资源[file:/Users/myuser/Downloads/apache-tomcat-7.0.47/lib/myfile.yml]无法解析为URL,因为它不存在我正在使用IntellJ 13。。我需要修改任何内容吗?很抱歉,我没有看到您正在使用ClassPathResource。我不知道这个类,但我认为不可能加载类路径之外的内容。我们必须找到另一个类。我已经更新了我的答案,请尝试使用这个新类FileSystemResource。我在使用它时收到FileNotFoundException:原因:java.io.FileNotFoundException:类路径资源[文件:/Users/myuser/Downloads/apache-tomcat-7.0.47/lib/myfile.yml]无法解析为URL,因为它在使用IntellJ 13时不存在。。我需要修改任何内容吗?很抱歉,我没有看到您正在使用ClassPathResource。我不知道这个类,但我认为不可能加载类路径之外的内容。我们必须找到另一个类。我已经更新了我的答案,请尝试使用这个新类FileSystemResource。我在使用它时收到FileNotFoundException:原因:java.io.FileNotFoundException:类路径资源[文件:/Users/myuser/Downloads/apache-tomcat-7.0.47/lib/myfile.yml]无法解析为URL,因为它在使用IntellJ 13时不存在。。我需要修改任何内容吗?很抱歉,我没有看到您正在使用ClassPathResource。我不知道这个类,但我认为不可能加载类路径之外的内容。我们必须找到另一个类。我已经更新了我的答案,请尝试使用这个新类FileSystemResource。我在使用它时收到FileNotFoundException:原因:java.io.FileNotFoundException:类路径资源[文件:/Users/myuser/Downloads/apache-tomcat-7.0.47/lib/myfile.yml]无法解析为URL,因为它在使用IntellJ 13时不存在。。我需要修改任何内容吗?很抱歉,我没有看到您正在使用ClassPathResource。我不知道这个类,但我认为不可能加载类路径之外的内容。我们必须找到另一个类。我已更新了我的答案。请尝试使用此新类文件系统资源。