<bean id="springConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="ignoreResourceNotFound" value="true"/> <property name="localOverride" value="true"/> <property name="locations"> <list> <value>classpath*:/spring-config.properties</value> <value>file:C:\\config\\huangkeyuan\\spring-config.properties</value> </list> </property> </bean> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="properties" ref="springConfig"/> </bean>
PropertyPlaceholderConfigurer只能用于spring配置文件和注解中,不能在jsp页面访问,所以还要多配置一个PropertiesFactoryBean。
为什么不只用PropertiesFactoryBean呢,因为它虽然可以在controller中以@Value("#{springConfig['key']}")来访问,但是却没有办法在spring配置xml中访问。上面这样配置了两个properties文件的包装,就可以同时在controler、jsp页面、xml配置文件中同时使用了。
在bean中注入如下:
@Value("${file_save_path}") private String fileSavePath;
在jsp页面引用如下:
<img class="img-responsive" src="${springConfig.file_visit_path}${info.faceImg.path}">
注意,el表达式中对象的名字是springConfig,要和PropertiesFactoryBean所配置的bean的id属性一致。