package net.watermelon.demo.vo; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import org.springframework.context.ResourceLoaderAware; import org.springframework.context.support.AbstractMessageSource; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.ResourceLoader; public class MessageResource extends AbstractMessageSource implements ResourceLoaderAware { @SuppressWarnings("unused") private ResourceLoader resourceLoader; /** * Map切分字符 */ protected final String MAP_SPLIT_CODE = "|"; private final Map<String, String> properties = new HashMap<String, String>(); public MessageResource() { reload(); } public void reload() { properties.clear(); properties.putAll(loadTexts()); } /** * * 描述:TODO * 查询数据 虚拟数据,可以从数据库读取信息,此处省略 * @return */ private List<Resource> getResource() { List<Resource> resources = new ArrayList<Resource>(); Resource re = new Resource(); Resource re1 = new Resource(); re.setResourceId(1); re.setName("common.name"); re.setText("name"); re.setLanguage("en"); resources.add(0, re); re1.setResourceId(2); re1.setName("common.name"); re1.setText("\u59D3\u540D"); re1.setLanguage("zh"); resources.add(1, re1); return resources; } /** * * 描述:TODO * 加载数据 * @return */ protected Map<String, String> loadTexts() { Map<String, String> mapResource = new HashMap<String, String>(); List<Resource> resources = this.getResource(); for (Resource item : resources) { String code = item.getName() + MAP_SPLIT_CODE + item.getLanguage(); mapResource.put(code, item.getText()); } return mapResource; } /** * * 描述:TODO * @param code * @param locale 本地化语言 * @return */ private String getText(String code, Locale locale) { String localeCode = locale.getLanguage(); String key = code + MAP_SPLIT_CODE + localeCode; String localeText = properties.get(key); String resourceText = code; if (localeText != null) { resourceText = localeText; } else { localeCode = Locale.ENGLISH.getLanguage(); key = code + MAP_SPLIT_CODE + localeCode; localeText = properties.get(key); if (localeText != null) { resourceText = localeText; } else { try { if (getParentMessageSource() != null) { resourceText = getParentMessageSource().getMessage( code, null, locale); } } catch (Exception e) { logger.error(e); } } } return resourceText; } public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = (resourceLoader != null ? resourceLoader : new DefaultResourceLoader()); } @Override protected MessageFormat resolveCode(String code, Locale locale) { String msg = getText(code, locale); MessageFormat result = createMessageFormat(msg, locale); return result; } @Override protected String resolveCodeWithoutArguments(String code, Locale locale) { String result = getText(code, locale); return result; } }
配置一个自定义的MessageResource 就可以
Bean 定义里面加如下代码
@Bean public ResourceBundleMessageSource propertiesMessageSource(){ ResourceBundleMessageSource rs = new ResourceBundleMessageSource(); rs.setBasenames("messages"); return rs; } @Bean public MessageSource messageSource(){ MessageResource mrs = new MessageResource(); mrs.setParentMessageSource(propertiesMessageSource()); return mrs; }
这里 setParentMessageSource 可以一样读取 properties 配置文件中的多语言处理,增加了数据库的多语言处理,管理和开发起来都比较方便。
相关推荐
达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...
超市管理系统 目录 项目简介 需求分析 编程软件以及环境 数据库基本表和E—R图 数据库框架介绍 源代码段分析 问题解决 数据库大作业--超市管理系统全文共12页,当前为第1页。 数据库大作业--超市管理系统全文共12页...
" " "所使用的语言、工具:VB6。0+ACCESS2003+WINDOWSXP. " " "所采用的技术、系统结构:ADO数据库联接技术,系统结构为C/S结构。 " " " " "设 "上机前预先把所有的源程序编写好。 " "计 "上机时不得迟到,不得缺席,...
山东交通学院 MIS课 程 设 计 任 务 书 ...PS:一开始打算用Oracle数据库完成,但是完成过程中出现太多错误和阻碍,加之临近考试复习时间紧迫,所以最终选择了Access数据库,Access数据库相当简单了
分布式数据库习题 第一章 1.1请用自己的语言定义下列分布式数据库系统中的术语: 全局/局部数据 全局数据是指参与全局应用,可被多个站点上的应用访问的数据; 局部数据是指只提供本站点的局部应用所需要的数据。 ...
这就对人事工资管理提出了 新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以 高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享, 避免重复劳动,规范数据管理...
使用计算机对婚纱的各项基本信息进行管理,比起手工管理来说既方便又简便,而且易于管理、搜索速度快、存储量大等多个优点。将其使用在婚纱管理中,不仅能够提高婚纱公司中管理员的工作效率,而且可以使婚纱管理更加...
3 相互有关联关系的数据的集合 DB DBMS 管理数据库的系统软件 DBA 完成某一功能的应用程序1 应用程序2 应用程序n DBAP 1 DBAP 2 DBAP n Computer System 数据库、数据库管理系统、数据库系统 数据库管理系统全文共...
使用数据库创建应用程序时,过程语言是应用程序和数据库之间的主要编程接口。神通数据库中所提 供的过程语言是 plOSCAR。在使用 plOSCAR 程序时,可用两种方法存储和执行程序。可以在本地存储程 序,并创建向数据库...
参考文献 24 花店管理系统 摘要: 我们已经学习了两个学期的数据库课程,所以对数据库的创建和SQL语言以及数据库 表的增加、修改、删除有了很好的掌握。这次实验要求建立一个关系数据库信息管理系 统,必须得经过...
数据库管理系统DBMS在企业管理中的应用 [关键词]数据库管理系统DBMS 企业管理 [文章摘要]本文主要介绍数据库管理系统的定义以及功能,企业中所使用的数据库管理 系统的种类以及选择的依据,介绍DBMS在企业管理中的...
(2)数据库管理系统:指帮助用户建立、使用和管理数据库的软 件系统,简称为DBMS(DataBaseManagementSystem)。数据库管理系统 是数据库系统的核心,DBMS通常由下列三个基本部分组成,即: 数据描述语言DDL...
2. 图书馆日常事务管理系统数据库的设计 (1)图书馆日常事务管理系统功能简析 图书信息维护:主要完成图书信息登记、修改、删除等操作。 读者信息维护:主要完成读者信息的添加、修改和删除等操作。 工作人员信息...
多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护 的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程 序不必考虑数据的定义、存储和数据存取的...
最后三章讨论了数据库管理,以及数据库在应用程序中的使用。第6章概述了数据库管理,构建了一个作为功能数据库的示例数据库,并用作讨论数据库管理需求的示例。本章探讨了并发控制、安全性、备份及恢复技术。数据库...
数据库管理系统能够为数据库提供数据的定义、建立、维 护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。 2.数据库应用系统 凡是用数据库技术管理数据(信息)的系统都称为数据库应用系统...
解,能将SQL语言很好的运用,增强了自己在数据库中应用SQL语言的灵活性,其中包括 ,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设 置,使逻辑更严密,在学习过程中,我也能过上网查...
Microsoft SQL Server Microsoft SQL Server是一种典型的关系型数据库管理系统,可以在许多操作系统上运行,它使用Tran sact-SQL语言完成数据操作。由于Microsoft SQL Server是开放式的系统,其它系统可以与它进行...
问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且特别耗费成本与人力,因此不少商家开始使用网上点菜系统。网上点菜系统是一...
数据库 超市管理系统设计报告 系统叙述 图 代码 心得体会 参考文献等【提供全部完全版】可是直接应用 班级:计HR05-7 姓名:张 冰 学号:0520010726 2007年7月4日 超市管理系统设计 ...