`
xieyan30
  • 浏览: 49130 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

spring 国际化(2)

 
阅读更多

大家看了我写的spring 国际化(1)后,应该会发现如果要获取资源文件的信息时,需要将配置文件中的资源文件bean注入到你正在操作的bean以后,才能使用。

spring的做法是将国际化资源作成系统级别的,对任何组件都进行开放。

实现方法如下:

org.springframework.context.ApplicationContext这个接口也继承了org.springframework.context.MessageSource接口

spring容器在启动时会调用initMessageSource()方法,它的作用就是初始化容器中的国际化资源。

根据反射机制,从BeanDefinitionRegistry中找到名为“messageSource”并且类型为org.springframework.context.MessageSource的bean,将它加载为容器级的国际化资源文件。

 

例如:下面的xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

    <!-- 名城必须为messageSource, 类型必须为org.springframework.context.MessageSource -->
    <!-- class为ResourceBundleMessageSource或ReloadableResourceBundleMessageSource都可以(区别已比较过) -->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <!-- <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> -->
        <property name="basenames">
            <list>
                <value>spring3/local/application</value>
            </list>
        </property>
    </bean>

</beans>

 测试

package spring3.local;

import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MessageResourceMain {

	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext(
				"spring3/local/message_resource.xml");

		System.out.println("CHINA:"
				+ context.getMessage("greeting.morning", null, Locale.CHINA));
		System.out.println("JAPAN:"
				+ context.getMessage("greeting.morning", null, Locale.JAPAN));
		System.out.println("US:"
				+ context.getMessage("greeting.morning", null, Locale.US));
		System.out.println("CANADA:"
				+ context.getMessage("greeting.morning", null, Locale.CANADA));

	}

}

 输出结果

CHINA:早上好
JAPAN:お早うございます
US:good night!
CANADA:お早うございます

 

0
0
分享到:
评论

相关推荐

    spring 国际化 spring mvc

    Spring MVC 国际化实现详解 在 Spring MVC 框架中,实现国际化是一项非常重要的任务。国际化可以让我们的应用程序适应不同语言和地区,提高应用程序的可读性和可用性。本文将详细介绍如何使用 Spring MVC 实现国际...

    Spring国际化案例

    2. **Spring配置**:在Spring的配置文件中,我们需要声明一个`MessageSource` bean,它是处理国际化消息的主要接口。通常我们会使用`ResourceBundleMessageSource`,它可以从.properties资源文件中加载消息。以下是...

    spring国际化实例

    Spring框架是Java开发中的一个核心库,它提供了一个广泛的功能集,包括依赖注入、面向切面编程、数据访问、Web应用程序开发以及我们今天关注的主题——国际化(i18n)。国际化是一个过程,使得软件能够适应不同语言...

    Spring mvc 国际化

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

    spring显示国际化信息

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户所在的地域和语言提供相应的显示内容。本示例将详细介绍如何在Spring应用中实现国际化。 首先...

    spring2国际化demo

    spring2国际化的demo 用的是eclipse+myeclipse6.0GA 很简单 但是感觉不错 学习之后留着备用 里面加入用到了spring的泛型工厂 可以不用强制转换了

    spring国际化项目

    在本项目"spring国际化项目"中,我们将深入探讨如何在Spring环境中实现国际化。 首先,我们需要理解国际化的基本概念。国际化不仅仅是翻译文本,它涉及将应用程序中的所有文化特定元素,如日期格式、货币符号、数字...

    Spring实现国际化的一个小例子

    在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...

    spring国际化

    而Spring的国际化(i18n,Internationalization)功能则允许我们为不同地区和语言的用户提供定制的显示内容。 在Spring MVC中实现国际化,主要涉及以下几个关键步骤和概念: 1. **资源文件**:首先,我们需要创建...

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

    Spring Boot的国际化(i18n)配置是其强大功能的一部分,它允许开发人员为不同地区的用户提供本地化的应用体验。这个“Spring Boot 国际化(i18n)配置demo.zip”包含了一个演示如何在Spring Boot项目中实现i18n的示例...

    Spring国际化Demo

    Spring国际化Demo

    spring mvc 3 国际化(下)——简单自定义操作

    在Spring MVC 3中,国际化是一项重要的功能,它允许我们为不同的地区和语言提供定制的显示内容。在“spring mvc 3 国际化(下)——简单自定义操作”这一主题中,我们将深入探讨如何自定义国际化过程,以满足特定的...

    自己动手在Spring-Boot上加强国际化功能的示例

    在Spring Boot应用中加强国际化功能是一项重要的任务,特别是在服务全球用户的情况下。本示例将指导你如何在Spring Boot中自定义国际化实现,包括从文件夹中动态加载多个国际化文件、根据用户请求动态设置前端显示的...

    spring mvc 国际化 demo

    2. **配置Spring MVC的国际化** 在Spring MVC的配置文件(如`dispatcher-servlet.xml`)中,我们需要添加一个`ResourceBundleMessageSource` bean,它负责读取和解析资源文件: ```xml ...

    Spring2.5的国际化配置

    2. **JSP 中的国际化**: 为了在 JSP 页面中使用国际化,需要确保 JSP 渲染器支持 JSTL(JavaServer Pages Standard Tag Library)。然后可以使用 `&lt;fmt:message&gt;` 标签来获取资源文件中的相应文本。例如,`...

    spring boot mybatis 国际化 拦截器

    在本文中,我们将深入探讨如何在Spring Boot应用中整合MyBatis,实现MySQL数据库连接,以及如何利用Spring MVC和拦截器来实现国际化(i18n)功能。此外,我们还将提及IIS 12作为可能的Web服务器选项。 首先,Spring...

    spring boot国际化 i18n

    Spring Boot的国际化(i18n)功能使得开发者可以轻松地为应用程序提供多语言支持,以便用户可以根据他们的偏好选择不同的语言界面。以下是对这个主题的详细讲解。 首先,我们需要了解i18n这个术语,它是...

    spring国际化jsp

    标题 "spring国际化jsp" 暗示我们讨论的是在Spring框架中实现Web应用程序的国际化(i18n)过程,特别是在使用JSP(JavaServer Pages)时。这通常涉及到资源包(properties文件)的使用,以存储不同语言的文本字符串...

    五 Spring 国际化问题

    Spring 国际化(i18n)是Spring框架中用于支持多语言环境的功能,它使得应用程序能够根据用户的地域设置显示相应的语言内容。在本文中,我们将深入探讨Spring的国际化实现,包括其工作原理、配置步骤以及实际应用。 ...

Global site tag (gtag.js) - Google Analytics