`
jianglanlan
  • 浏览: 13242 次
  • 性别: Icon_minigender_1
  • 来自: 杭州市
社区版块
存档分类
最新评论

spring messagesource 动态指定资源文件

阅读更多

      由于项目是使用的maven模块化的项目,各个模块都分别打包成jar最终被web可部署项目依赖,由于项目中用过了spring messagesource 资源国际化,而messagesource在spring中的配置仅此一份,为了使资源文件可以动态指定,所以对ResourceBundleMessageSource进行了扩展。代码如下:

public class GapResourceBundleMessageSource extends ResourceBundleMessageSource {

	@Override
	public void setBasenames(final String ... basenames) {
		List<String> list = new LinkedList<String>();
		if (ArrayUtils.isNotEmpty(basenames)) {
			for (String baseName : basenames) {
				if (StringUtils.isNotEmpty(baseName)) {
					if (baseName.contains(",")) {
						String[] bases = baseName.split(",");
						for (String base : bases) {
							list.add(base);
						}
					} else {
						list.add(baseName);
					}
				}
			}
		}
		String[] bases = new String[list.size()];
		list.toArray(bases);
		list.clear();
		list = null;
		super.setBasenames(bases);
	}
}

    我们在配置文件中这样配置:

   

<bean id="messageSource" class="cn.evun.gap.core.spring.GapResourceBundleMessageSource">
		<property name="basenames">
			<list><value>${i18n.message}</value></list>
		</property>
		<property name="useCodeAsDefaultMessage" value="true" />
</bean>

    其中,i18n.message的格式为i18n.message=i18n/aaa,i18n/bbb,i18n/ccc...。

    这样,我们就可以通过修改i18n.messsage的值来达到动态指定资源文件而无需去修改原生配置文件了

分享到:
评论

相关推荐

    spring messageSource结合ehcache demo

    `messageSource`的核心职责是根据指定的语言和消息键,从配置的资源文件中查找对应的消息文本。在国际化应用中,通常会为每种语言创建一个.properties文件,如`messages_en.properties`(英文)和`messages_zh_...

    Spring 加载多个配置文件

    `ApplicationContext` 是 Spring 的核心接口之一,用于提供Bean的生命周期管理和资源访问服务。它可以通过以下两种常见实现类来加载多个配置文件: - `ClassPathXmlApplicationContext`:从类路径(CLASSPATH)中...

    Spring MVC 1 资源文件

    这个资源文件可能包含了关于如何使用 Spring MVC 开发 Web 应用的教程、示例代码或者配置文档。 1. **MVC 模式介绍** MVC 设计模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller...

    基于SpringMVC国际化资源配置方式Demo

    这里的`basename`属性指定了资源文件的路径,`classpath:i18n/messages`表示资源文件位于类路径下的`i18n`目录,文件名为`messages`。 4. **使用国际化**:在Controller或者视图模板(如JSP、Thymeleaf)中,我们...

    9-Spring-mvc-国际化1

    2. 配置Spring MVC:在Spring的配置文件中,配置`MessageSource` bean,指定资源文件的基名和位置。例如: ```xml &lt;bean id="messageSource" class="org.springframework.context.support....

    Spring Boot 国际化(i18n)配置demo.zip

    在`application.properties`或`application.yml`中,你需要配置`spring.messages.basename`属性来指定资源文件的基础名。例如: ``` spring.messages.basename=i18n/messages ``` 3. **使用MessageSource**: ...

    spring2.5的applicationContext配置文件

    7. **国际化**:Spring支持多语言环境,通过`&lt;bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"&gt;`来配置消息源,使应用能够根据用户的语言环境显示相应的文本。...

    spring显示国际化信息

    - `setBasename`方法指定资源文件的基础名,不包括扩展名。 3. **在视图层使用** - 在JSP或Thymeleaf等视图技术中,可以通过`&lt;fmt:message&gt;`标签或者Thymeleaf的`#{key}`语法来获取并显示国际化的文本。 - JSP...

    第18章spring-mvc之国际化(i18n)

    总结一下,Spring MVC的国际化(i18n)功能通过`MessageSource`接口和`ResourceBundle`资源文件实现。开发者可以创建针对不同语言的资源文件,并通过配置使Spring MVC自动根据用户locale选择合适的消息。这极大地提高...

    spring国际化实例

    这里,`basename`属性指定了资源文件的基础名称,不包括扩展名。 然后,在你的控制器或服务类中,你可以通过`MessageSource`的`getMessage`方法来获取相应的本地化消息。假设你有一个名为`messageService`的`...

    Spring mvc 国际化

    2. 配置MessageSource Bean:在Spring MVC的配置文件(如springservlet-config.xml)中添加一个MessageSource Bean,这个Bean用来指定国际化资源文件的位置。在该Bean中,需要设置basename属性,其值为基本名称加上....

    五 Spring 国际化问题

    总结起来,Spring的国际化支持是通过`MessageSource`接口和资源文件实现的,它可以方便地集成到Spring MVC项目中,提供多语言的用户体验。正确配置和使用这些机制,能确保我们的应用程序能够适应全球化的市场需求。...

    Spring i18n

    8. **配置国际化**:在Spring应用上下文中,可以通过`&lt;bean&gt;`元素配置`MessageSource`,设置默认的locale、资源文件路径等。在web.xml中,还可以配置`LocaleResolver`来控制用户请求的locale解析策略。 9. **动态...

    Spring国际化案例

    这里的`basename`属性指定了资源文件的基础名称,Spring会自动寻找对应语言环境的文件。 3. **在代码中使用**:在Controller或Service层,我们可以使用`MessageSource`的`getMessage()`方法来获取国际化的消息。...

    spring-boot-web.zip

    3. **使用MessageSource**:Spring Boot提供`MessageSource`接口来访问和解析资源文件中的消息。在你的服务类或控制器中,可以通过依赖注入`MessageSource`并调用`getMessage()`方法获取相应的翻译文本。 4. **请求...

    09 Spring IoC容器ApplicationContext如何实现国际化慕课专栏1

    XML配置中,basename属性指定了资源文件的基础名称,例如`locale/messages`,Spring会自动寻找对应locale的资源文件。注解配置则可以直接在配置类上使用@Bean注解来创建ResourceBundleMessageSource实例。 在实际...

    Spring MVC Locale 的使用 中文 英文 等语言 切换

    在Spring MVC框架中,`Locale`是用来处理应用程序中的多语言支持的关键组件。...这篇博客文章将深入探讨如何在Spring MVC应用中...在实际开发中,确保正确配置这些组件,并创建相应的资源文件,就能轻松实现语言切换功能。

    Spring Boot实战实现登录国际化

    2. 在配置文件中指定资源文件位置。 3. 在模板引擎的HTML页面中使用`&lt;spring:message&gt;`标签引用资源。 4. 在Controller中处理登录请求,考虑用户浏览器的语言环境。 5. 可选:使用Bootstrap或其他前端框架提升UI体验...

    spring国际化项目

    在Spring中,我们主要利用`MessageSource`接口来管理这些资源文件。`MessageSource`允许我们在运行时动态地查找和解析消息。Spring提供了多种`MessageSource`的实现,例如`AbstractMessageSource`和` ...

Global site tag (gtag.js) - Google Analytics