java项目国际化ResourceBundleMessageSource

最近项目需要国际化,一般常见的方式就是采用配置文件话国际化。

根据请求头传入不同的语言,返回不同的内容;

自己搭建了一个模型,分如下几步:

1.spring配置文件修改,定义国际化消息

2.查找项目中需要返回到web的国际化内容,写到配置文件中

3.处理国际化封装成一个工具类,在controller层 统一处理。

国际化需要注意,如果调用方未传language,系统需要默认一个,最好写在配置文件中,方便随时修改,用 @value注入到国际化工具类中。

一 :Spring配置文件

  <!-- 定义国际化消息-->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <!-- 其中basename用来指定properties文件的通用名
              如实例中的messages_en.properties,messages_ja.properties通用名都是messages
         -->
        <property name="basename" value="messages"/>
        <property name="useCodeAsDefaultMessage" value="true" />
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="cacheSeconds" value="100"></property>

    </bean>

二:配置文件国际化,如下图

三:工具类:

 1 @Service
 2 public class ResponseUtil {
 3
 4     @Value(value = "${default.xLanguage}")
 5     public String language;
 6
 7     public  String getMessage(String xLanguage, Error error, String className){
 8
 9         if(StringUtils.isEmpty(xLanguage)){
10             xLanguage = language;
11         }
12         if(null==error){
13             return "请求成功";
14         }
15         /***此处根据不同的code获取国际化资源**/
16
17
18         ResourceBundle resourceBundle = null;
19         switch (xLanguage){
20             case "en-US":
21                 resourceBundle = ResourceBundle.getBundle("messages", Locale.US);
22                 break;
23             case "zh-CN":
24                 resourceBundle = ResourceBundle.getBundle("messages", Locale.SIMPLIFIED_CHINESE);
25                 break;
26         }
27         if(null==resourceBundle){
28             return null;
29         }
30
31         return resourceBundle.getString(messageKey);
32     }
33
34
35     }
36 }    

PostMan模拟后,返回结果成功。

原文地址:https://www.cnblogs.com/amberJava/p/12362655.html

时间: 2024-10-09 00:33:11

java项目国际化ResourceBundleMessageSource的相关文章

java基础----&gt;java中国际化的实现

应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产.开发这样的程序的过程,就称为国际化.今天,我们就开始学习java中国际化的代码实现. Java国际化主要通过如下3个类完成 java.util.ResourceBundle:用于加载一个资源包 java.util.Locale:对应一个特定的国家/区域.语言环境. java.text.MessageFormat:用于将消息格式化 为实现程序的国际化,必须提供程序所需要的资源文件.资源文件的内容由key-value对

两种Java实现国际化的方法

目前,公司中很多项目需要国际化的实现,现在的实现方式是通过JS替换显示的方法,切换语言的过程造成了中英文语言的闪烁出现,带来极其不好的用户体验.另外,使用JS替换的方法配置的Json格式的配置文件,不易于读写,造成了开发不同模块同事写入文件时候的冲突,和JS加载对于其他JS加载造成各种意想不到的bug,给开发人员造成了极大的痛苦,故本文基于Struts2和SpringMVC两种方式,简单阐述Struts2和SpringMVC两种国际化的实现. 文章结构 一.使用Struts2方式实现国际化 1.

Ant入门教程之部署Java项目

Ant可以代替使用javac.java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的. 1.利用ant的javac命令来编译Java程序 Ant的javac命令用于实现编译Java程序的功能.下面来看一个简单的例子:首先我们建立名为 JavaPro的Java项目, 建立src目录为源代码目录,在src目录下建立TestAnt.java这个类文件.该类文件的内容如下: package com.home; public class TestAnt{ public sta

Java项目生成可执行jar包、exe文件以及在Windows下的安装文件

1.如何通过eclipse将Java项目生成可执行jar包 首先把在eclipse下的java项目导出jar file 下一步 下一步 下一步 最后点击完成,便生成了可执行的jar文件.可以在刚刚选择导出目录的文件夹中找到. 2.将刚刚生成的jar文件导出可执行的.exe文件,首先安装exe4j软件,下载地址如下:http://www.jb51.net/softs/541579.html,下载后安装破解.打开界面如下 直接下一步,选择第二个 下一步 下一步 如果要在64位下运行,则要点击下面那个

在LINUX上部署带有JAR包的JAVA项目

         在LINUX上部署带有JAR包的JAVA项目 首先eclipse上要装上一个小插件,叫做Fat Jar 点击Fat Jar 红框里选上主类点击Next 如图把勾打上 在该路径下找到jar包 通过ftp协议把jar包放在linux服务器下 进入到jar包路径 输入指令 java -jar XXX.jar 运行成功! 注意!!!!!!!!!!!!!!!! 当你断开服务器连接时,工程会停止! 所以要用下面的指令 指令:nohup java -jar XXX.jar 通过指令ps -e

Myeclipse中java项目转成Web项目

在eclipse导入一个myeclipse建的web项目后,在Eclipse中显示的还是java项目,按下面的步骤可以将其转换成web项目. 1.找到项目目录下的.project文件 2.编辑.project文件,找到<natures>...</natures> 3.2中找到的结点中加下面的的代码(如果没有) <nature>org.eclipse.wst.common.project.facet.core.nature</nature> <natur

[原创]Java项目统一UTC时间方案

Java项目统一UTC时间方案 作者:Gods_巨蚁 引言 近期团队的个别项目在进行框架升级后,部分时间值存在8小时误差,原因是错误的将数据库中的时间数据理解成了UTC时间(旧版本认为是北京时间) 考虑到未来项目对于时间理解的一致性,我决定将项目统一为使用UTC时间,经调研,形成本文 mysql数据库时区及时间时间类型说明 数据库时区 mysql数据库拥有时区设置,默认使用系统时区 可通过如下语句查询当前时区 show variables like '%time_zone%'; 下图为我个人机器

Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.

eclipse中java项目转成Web项目

在eclipse导入一个myeclipse建的web项目后,在Eclipse中显示的还是java项目,按下面的步骤可以将其转换成web项目. 1.找到项目目录下的.project文件 2.编辑.project文件,找到<natures>...</natures> 3.2中找到的结点中加下面的的代码 <nature>org.eclipse.wst.common.project.facet.core.nature</nature> <nature>o