Spring中国际化消息的访问

本文探讨了Spring中的ApplicationContext如何实现国际化消息访问。通过配置messageSource,设置资源文件位置和message.properties,详细展示了访问过程。同时,文章指出在配置bean的id时必须命名为messageSource,否则将引发异常。此外,还讨论了资源文件路径的灵活性,并提出在Controller中如何简洁地获取国际化消息的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在spring中,ApplicationContext 作为BeanFactory接口的派生,不仅具有了BeanFactory的所有功能,还提供了以下功能。(BeanFactory主要负责Bean的初始化,配置和管理)

1。messageSource 国际化消息的访问

2。资源访问 如URL和文件

3。事件传播 如实现了ApplicationListener的接口

4。加载多个上下文,每个上下文负责特定的层次,比如应用的web层


        下面,我们来看一下国际化消息的访问,话不多说,直接看代码。

首先是在applicationContext.xml中的配置:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>local.message</value>
				<value>local/sex</value>
			</list>
		</property>
</bean>

其次是资源文件的位置以及message.properties的配置信息


    

最后我们来看运行结果:

 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext1.xml");
 String message = ac.getMessage("name", null, null);
 System.out.println(message);
com.mysql.jdbc.Driver

如上所示,我们对国际消息的访问已经完成。


总结:在上述代码中需要注意的几点。

1.bean的id一定要配置成messageSource,否则会出现下面的异常。

org.springframework.context.NoSuchMessageException: No message found under code 'jdbc.driver' for locale 'null'.

2.加载资源文件时,路径下用点和斜杠都是可以的

<value>local.message</value>
<value>local/sex</value>

最后,还有一点就是,如何在controller类中获取国际化消息,在网上找了下,无不是写了大量的代码,不知道有没有通过注解获取国际化消息,可以在下面评论啊。


有解释不正确的地方,希望大家及时指出,多谢多谢!    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值