spring mvc中message source的问题

如果将Message source定义在applicationContext.xml中,在bean里面注入message source的时候总是会得到DelegationMessageSource,如果不想得到代理,比如使用了ReloadableResourceBundleMessageSource,想要在bean里面取到ReloadableResourceBundleMessageSource,应该讲定义移到springMVC-servlet.xml里面,这个可能是因为ApplicationContext本身有一个message source,参考参考链接文章,而以官方文档的说法,按照它的规则来总是取到的代理,如果定义在applicationContext.xml之外则不是用它默认的message source,也就不是代理了。

如果想要在bean 里面手动刷新message source,比如加入了新的语言文件,要重新加载,可以在定义ReloadableResourceBundleMessageSource的时候定义刷新间隔,也可以在bean里面需要的地方取到实例之后用clearCache方法。


参考:

https://stackoverflow.com/questions/728455/how-to-inject-spring-reloadableresourcebundlemessagesource

https://docs.spring.io/spring/docs/2.5.x/reference/beans.html#context-functionality-messagesource

https://stackoverflow.com/questions/3652090/difference-between-applicationcontext-xml-and-spring-servlet-xml-in-spring-frame


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值