Spring MVC中全局读取properties配置的最佳方式是什么?

需要获取配置信息的地方包括Controller、Service层和View层(假设是jsp),如果不希望每次都通过Model生成参数并传递,有什么方式可以全局方便的读取?及如何配置?

0
weixin_42505690
weixin_42505690 比如,我们在 site.properties 中定义: site.baidu=http://www.baidu.com/site.google=http://www.google.com/ 在 Spring 配置中: <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="/WEB-INF/site.properties"/> </bean> 如果要在 jsp 页面中使用配置中的设定值,例如 website.jsp : <a href="${site.baidu}">baidu</a> <a href="${site.google}">google</a> 需要怎么设置?
大约 6 年之前 回复
jinnianshilongnian
jinnianshilongnian 没太看懂 给个例子吧
大约 6 年之前 回复

2个回答

请使用spring el表达式,在界面中使用
标签 试试;

不过建议你使用如
@Value("${icon.css.file.src}")
private String iconClassFile;

在控制器赋值,再取

0
jinnianshilongnian
jinnianshilongnian 作用不一样 一个是${} 占位符替换 一个就是纯粹的配置
大约 6 年之前 回复
weixin_42505690
weixin_42505690 能具体说一下这三种加载方式的区别吗: <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" /> <context:property-placeholder /> <util:properties /> 有点混淆,Spring为什么不使用统一的配置加载方式呢?
大约 6 年之前 回复
jinnianshilongnian
jinnianshilongnian 1、可以 不过需要自己使用具体类去声明bean 而不是 <context:property-placeholder location="classpath:resources.properties"/> 2、如果你使用的是spring3.1及更高版本 可以 <spring:eval expression="@environment.getProperty('icon.css.file.src')" /> 或 <spring:eval expression="@environment['icon.css.file.src']" />
大约 6 年之前 回复
weixin_42505690
weixin_42505690 这样确实可以了,但是必须要使用 <util:properties> 吗? 我用 PropertyPlaceholderConfigurer 是因为 spring 配置文件中也有一些 bean 的 property 需要取配置中的值
大约 6 年之前 回复
jinnianshilongnian
jinnianshilongnian 使用如 1、 <util:properties id="props" location="classpath:application.properties"/> 2、 <spring:eval expression="@props['icon.css.file.src']"/>
大约 6 年之前 回复
weixin_42505690
weixin_42505690 spring 的 eval 标签好像没有 value 属性吧,编辑器已报错“缺少 expression 属性;未定义的属性 value” 并且如果改成 expression 属性,也是报错:java.lang.NullPointerException
大约 6 年之前 回复

写个工具类 直接读取 这用想嘛.....

在系统加载的时候直接装载properties文件内容到集合中
写个监听器当配置文件夹发生变化时更新properties集合

要么就随读随取

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!