首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Springboot使用MessageSource读取资源文件

Springboot使用MessageSource读取资源文件

作者头像
别先生
发布于 2020-10-30 02:24:22
发布于 2020-10-30 02:24:22
1.9K00
代码可运行
举报
文章被收录于专栏:别先生别先生
运行总次数:0
代码可运行

1、项目开发过程中的提示文字信息可以在资源文件中进行定义,而且资源文件是实现国际化技术的主要手段。如果想在SpringBoot里面进行资源文件的配置,只需要做一些简单的application.yml配置即可,而且所有注入的资源文件都可以像最初的Spring处理那样,直接使用MessageSource进行读取。

首先,在src/main/resources源文件夹下创建一个i18n的子目录(包),然后创建src/main/resources/i18n/Messages.properties文件,然后输入自己的提示信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 springboot.url=www.bie.com
2 springboot.msg=欢迎{0}光临!

然后,修改application.yml配置文件,追加资源文件配置,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 server.port=8081
2 
3 # 定义资源文件,多个资源文件使用逗号进行分割
4 spring.messages.basename=i18n/Messages 

项目结构,如下所示:

编写测试程序,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 package org.springboot.tentent.controller;
 2 
 3 import java.util.HashMap;
 4 import java.util.Locale;
 5 import java.util.Map;
 6 
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.context.MessageSource;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RestController;
11 
12 @RestController
13 public class SampleController {
14 
15     // 利用该对象实现资源文件的读取
16     @Autowired
17     private MessageSource messageSource;
18 
19     @RequestMapping(value = "/message")
20     public Map<String, String> message() {
21         Map<String, String> map = new HashMap<String, String>();
22         // 当程序中配置了资源文件之后,就可以通过MessageSource接口中提供的getMessage()方法进行资源的读取
23         map.put("springboot.url:", this.messageSource.getMessage("springboot.url", null, Locale.getDefault()));
24         map.put("springboot.msg:",
25                 this.messageSource.getMessage("springboot.msg", new Object[] { "哈哈哈" }, Locale.getDefault()));
26         return map;
27     }
28 
29 }

运行效果,如下所示:

2、可以使用此机制实现国际化开发,当程序可以实现资源文件读取的时候,就意味着可以实现国际化开发处理了。可以发现,MessageSource接口中的getMessage()方法里面需要接收一个Locale类的对象,此时就可以通过Locale类的设置来获取不同的资源文件。当然,也需要在项目中配置好不同语言的资源文件。例如,本程序在src/main/resources/i18n目录中又创建了Messages_zh_CN.properties和Messages_en_US.properties(注意baseName的名称相同)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 springboot.url=www.bie.com
2 springboot.msg=欢迎{0}光临!
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 springboot.url=www.bie.com
2 springboot.msg=welcome to {0} here!

项目结构,如下所示:

测试案例,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 package org.springboot.tentent.controller;
 2 
 3 import java.util.HashMap;
 4 import java.util.Locale;
 5 import java.util.Map;
 6 
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.context.MessageSource;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RestController;
11 
12 @RestController
13 public class SampleController {
14 
15     // 利用该对象实现资源文件的读取
16     @Autowired
17     private MessageSource messageSource;
18 
19     @RequestMapping(value = "/message")
20     public Map<String, String> message() {
21         Map<String, String> map = new HashMap<String, String>();
22         // 当程序中配置了资源文件之后,就可以通过MessageSource接口中提供的getMessage()方法进行资源的读取
23         map.put("springboot.url", this.messageSource.getMessage("springboot.url", null, Locale.getDefault()));
24         map.put("springboot.msg",
25                 this.messageSource.getMessage("springboot.msg", new Object[] { "哈哈哈" }, new Locale("en", "US")));
26         
27         System.out.println(map.get("springboot.msg"));
28         // 采用不同的Locale对象实现指定语言的资源读取
29         map.put("springboot.msg",
30                 this.messageSource.getMessage("springboot.msg", new Object[] { "哈哈哈" }, new Locale("zh", "CN")));
31         
32         System.out.println(map.get("springboot.msg"));
33         return map;
34     }
35 
36 }

注意:即使提供了不同语言的资源文件,在SpringBoot中也依然需要提供Messages.properties配置文件,否则将无法实现资源文件的读取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 server.port=8081
2 
3 # 定义资源文件,多个资源文件使用逗号进行分割
4 spring.messages.basename=i18n/Messages,i18n/Messages_en_US,i18n/Messages_zh_CN
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【重磅】JimuReport 积木报表 v2.0 版本发布,免费可视化报表
JEECG
2025/06/09
1460
强!一款贼好用的低代码报表工具,开源免费!
今天给大家推荐一款免费的数据可视化报表设计工具:JimuReport,类似excel操作风格,在线拖拽完成报表设计!项目号称:功能永久免费、可以商用、永久免费使用!
测试开发技术
2024/04/17
4150
JimuReport 积木报表 v1.9.5发布,免费的可视化报表
JEECG
2025/03/28
2540
【新年版】JimuReport 积木报表 v1.9.4发布,免费报表、打印设计和视化设计
JEECG
2025/02/20
2040
免费的可视化Web报表工具,JimuReport v1.5.0-beta版本发布
项目介绍 积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的! 当前版本:v1.5.0-beta | 2022-04-18 集成依赖 <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-
JEECG
2022/04/18
6120
JimuReport积木报表 v1.6.4 稳定版本正式发布—开源免费的低代码报表
JEECG
2023/10/16
5320
积木报表·JimuReport 1.3.64 版本发布,免费的企业级可视化报表工具
项目介绍 积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的!!! 当前版本:v1.3.64-beta | 2021-07-13 集成依赖 <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>spring-boot
JEECG
2021/07/15
1.6K0
积木报表·JimuReport 1.3.64 版本发布,免费的企业级可视化报表工具
【全新改版升级】JimuReport 积木报表 v1.9.0 版本发布,填报和大屏
此次版本改动较大,完善了填报功能支持行表格、一对多、查询填报等高级填报功能;支持共享数据集;整体界面大改版,使用体验更加简便;仪表盘提供大屏能力,支持黑色主题风格;
JEECG
2024/11/04
4940
JimuReport v1.6.1版本发布,修复 Freemarker 模板注入高危漏洞
JEECG
2023/08/16
4470
【免费开源】积木报表ElasticSearch数据集使用实战
积木报表 JimuReport,是一款免费的数据可视化报表,含报表、大屏和仪表盘,像搭建积木一样完全在线设计!功能涵盖:数据报表、打印设计、图表报表、门户设计、大屏设计等!
JEECG
2025/05/12
1030
【免费开源】积木报表文件数据集使用实战
积木报表 JimuReport,是一款免费的数据可视化报表,含报表、大屏和仪表盘,像搭建积木一样完全在线设计!功能涵盖:数据报表、打印设计、图表报表、门户设计、大屏设计等!
JEECG
2025/05/12
1160
JimuReport积木报表1.1.05 版本发布,免费的企业级 Web 报表工具
项目介绍 积木报表,是一款免费的企业级Web报表工具,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题。 当前版本:v1.1.05 | 2021-01-15 #资料下载 示例代码: https://github.com/zhangdaiscott/JimuReport 马上体验: http://www.j
JEECG
2021/01/21
9680
JimuReport 积木报表 v1.7.6 补正版发布,免费的低代码报表
JEECG
2024/06/20
1850
JimuReport积木报表 v1.6.0版本发布—免费的可视化报表
JEECG
2023/08/16
5990
JimuReport积木报表 v1.7.0 变革版本发布,报表工具
JEECG
2024/02/19
2480
免费的可视化Web报表工具,JimuReport v1.4.4-beta版本发布
项目介绍 积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的! 当前版本:v1.4.4-beta | 2022-03-21 集成依赖 <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-
JEECG
2022/03/21
7470
低代码报表,JimuReport积木报表 v1.4.0版本发布,免费的可视化数据产品
项目介绍 积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的! 当前版本:v1.4.0 | 2021-11-01 集成依赖 <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-boot-
JEECG
2021/11/01
9100
低代码报表,JimuReport积木报表 v1.4.0版本发布,免费的可视化数据产品
开源仪表盘,积木仪表盘 v1.8.1 版本发布
JEECG
2024/09/26
1980
低代码可视化报表-积木报表,JimuReport v1.5.2版本发布
项目介绍一款免费的低代码可视化报表,像搭建积木一样在线拖拽设计!低代码开发必备,功能涵盖,数据报表、打印设计、图表报表、大屏设计等!秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的!当前版本:v1.5.2 | 2022-07-11集成依赖<dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-boot-starte
JEECG
2022/07/11
8540
JimuReport积木报表 v1.5.8版本发布—免费的数据可视化报表
项目介绍一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!Web 版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题。领先的企业级Web报表软件,采用纯Web在线技术,专注于解决企业报表快速制作难题。当前版本:v1.5.8 | 2025-05-11专注于开源,打造“专业 易用 智能 低代码”的数据可视化工具开源协议:`功能永
JEECG
2023/05/12
8300
推荐阅读
【重磅】JimuReport 积木报表 v2.0 版本发布,免费可视化报表
1460
强!一款贼好用的低代码报表工具,开源免费!
4150
JimuReport 积木报表 v1.9.5发布,免费的可视化报表
2540
【新年版】JimuReport 积木报表 v1.9.4发布,免费报表、打印设计和视化设计
2040
免费的可视化Web报表工具,JimuReport v1.5.0-beta版本发布
6120
JimuReport积木报表 v1.6.4 稳定版本正式发布—开源免费的低代码报表
5320
积木报表·JimuReport 1.3.64 版本发布,免费的企业级可视化报表工具
1.6K0
【全新改版升级】JimuReport 积木报表 v1.9.0 版本发布,填报和大屏
4940
JimuReport v1.6.1版本发布,修复 Freemarker 模板注入高危漏洞
4470
【免费开源】积木报表ElasticSearch数据集使用实战
1030
【免费开源】积木报表文件数据集使用实战
1160
JimuReport积木报表1.1.05 版本发布,免费的企业级 Web 报表工具
9680
JimuReport 积木报表 v1.7.6 补正版发布,免费的低代码报表
1850
JimuReport积木报表 v1.6.0版本发布—免费的可视化报表
5990
JimuReport积木报表 v1.7.0 变革版本发布,报表工具
2480
免费的可视化Web报表工具,JimuReport v1.4.4-beta版本发布
7470
低代码报表,JimuReport积木报表 v1.4.0版本发布,免费的可视化数据产品
9100
开源仪表盘,积木仪表盘 v1.8.1 版本发布
1980
低代码可视化报表-积木报表,JimuReport v1.5.2版本发布
8540
JimuReport积木报表 v1.5.8版本发布—免费的数据可视化报表
8300
相关推荐
【重磅】JimuReport 积木报表 v2.0 版本发布,免费可视化报表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档