【六袆 - 国际化】SpringBoot国际化Message

news2024/12/23 19:41:19

模拟场景校验请求参数

 private void checkParam(List<ReqAppAdminDTO> req) {
        // 校验管理员如果已存在,则抛出已存在异常
        req.forEach(item -> {
            AppAdminDO appAdminDO = appAdminMapper.selectByAppIdAndAdminNo(item.getAppId(), item.getAdminNo());
            if (ObjectUtil.isNotEmpty(appAdminDO)) {
                CheckUtil.check(false, ErrorMessagesConstants.APP_ADMIN_IS_EXIST, item.getAdminNo());
            }
        });

        req.forEach(item -> {
            CheckUtil.check(false, ErrorMessagesConstants.PARAM_IS_NULL_CN, item.getTel());
        });
    }

在resources目录下配置文件message_zh_cn.properties

field.invalid=字段取值错误
param.is.null=参数为空
param.existed=参数已存在

img

在这里插入图片描述

使用注解配置

@Configuration
public class StaticFieldInjectionConfiguration {

    /**
     *  国际化配置
     * @return
     */
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasenames("i18n/messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

/**
 * 工具类注入
 */
    @PostConstruct
    private void init() {
        CheckUtil.setResources(messageSource());
        LocalMessageUtil.setResources(messageSource());
    }

}

效果

sucess

fail

在这里插入图片描述

详细步骤

在 Spring Boot 中配置国际化消息 。您可以按照以下步骤进行配置:

  1. src/main/resources 目录下创建一个名为 messages.properties 的文件,用于存储默认的消息。将您的英文消息添加到该文件中。例如:

    app.admin.is.exist=The application admin account [{0}] already exists.
    
  2. 创建其他语言的消息文件。在 src/main/resources 目录下创建对应语言的消息文件,例如 messages_zh_CN.properties(中文简体)和 messages_fr.properties(法语)。将相应语言的消息添加到对应的文件中。例如:

    messages_zh_CN.properties

    app.admin.is.exist=应用管理员账号[{0}]已存在。
    

    messages_fr.properties

    app.admin.is.exist=Le compte administrateur de l'application [{0}] existe déjà.
    
  3. 在 Spring Boot 的配置文件(application.propertiesapplication.yml)中,添加以下配置:

    # 指定默认语言
    spring.mvc.locale=zh_CN
    # 指定支持的语言
    spring.mvc.locale-resolver=fixed
    spring.mvc.locale-resolver=fixed
    spring.mvc.locale-resolver=fixed
    spring.messages.basename=messages
    
    spring:
      mvc:
        locale: zh_CN
        locale-resolver: fixed
      messages:
        basename: messages
    

    这些配置将设置默认的语言为中文(zh_CN),并将消息文件的基本名称设置为 messages

  4. 在您的代码中,您可以使用 MessageSource 来获取国际化消息。通过在需要获取消息的地方注入 MessageSource,然后使用 getMessage 方法来获取消息。例如:

    @Autowired
    private MessageSource messageSource;
    
    public void someMethod() {
        String message = messageSource.getMessage("app.admin.is.exist", new Object[]{"admin"}, LocaleContextHolder.getLocale());
        System.out.println(message);
    }
    

    在上面的示例中,getMessage 方法的第一个参数是消息代码,第二个参数是用于替换占位符的参数数组,第三个参数是当前的语言环境(通过 LocaleContextHolder.getLocale() 获取)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu上回环设备/dev/loop0占用100%清理

查看磁盘占用情况时&#xff1a; df -h/dev/loopn这些设备在Linux下被称为回环设备。 终端输入&#xff1a; sudo apt autoremove --purge snapd再次查看&#xff1a;

Android安卓实战项目(8)---自行车fitting计算软件(源码在文末)可用于比赛项目或者作业参考中

Android安卓实战项目&#xff08;8&#xff09;—自行车fitting计算软件&#xff08;源码在文末&#x1f415;&#x1f415;&#x1f415;&#xff09;可用于比赛项目或者作业参考中 【bilibili演示地址】 https://www.bilibili.com/video/BV1eu4y1B7yA/?share_sourcecopy_we…

常用抓包工具

Fiddler Fiddler 是一个很好用的抓包工具&#xff0c;可以用于抓取http/https的数据包&#xff0c;常用于Windows系统的抓包&#xff0c;它有个优势就是免费 Charles Charles是由JAVA开发的&#xff0c;可以运行在window Linux MacOS&#xff0c;但它是收费的&#xff0c;和…

大厂容器云实践之路(一)

1-华为CCE容器云实践 华为企业云 | CCE容器引擎实践 ——从IaaS到PaaS到容器集群 容器部署时代的来临 IaaS服务如日中天 2014-2015年&#xff0c;大家都在安逸的使用IaaS服务&#xff1b; 亚马逊AWS的部署能力方面比所有竞争对手…

有血有肉的PPT

1、PPT是Powerpoint缩写 2、引申的含义是Powerpoint Power(力量/能量&#xff09; Point(观点/要点) 3、用PPT做的文档是讲演稿&#xff0c;讲演的内容要有力度&#xff0c;之所以要去演讲是为了能够影响受众 4、其次演讲稿上的内容要列出要点、表明观点&#xff0c;所以一般P…

Java 并发容器和框架Fork/Join详解

目 录 一 使用场景 1 大规模数据处理 2 复杂计算 3 并行搜索 4 并行排序 二 Fork/Join框架介绍 三 Fork/Join框架模块 四 Fork/Join框架核心思想 1分治思想(Divide-and-Conquer) 2 work-stealing(工作窃取)算法 五 Fork/Join框架执行流程 1 实现原理&#xff1a; 2…

Vue3 第二节 Vue3的响应式

1.Vue3的响应式原理 2.ref函数和reactive函数的对比 3.setup注意点 一.Vue3的响应式原理 1.Vue2.x中的响应式原理 ① 实现原理 对象类型&#xff1a;通过Object.defineProperty() 对属性的读取&#xff0c;修改进行拦截&#xff08;数据劫持&#xff09;数组类型&#xf…

上位机是什么?有什么实际用途?

上位机是指控制、监测或管理下位机的计算机系统&#xff0c;也可以称为主机。它通常用于工业自动化、机器人控制、数据采集和处理等领域。在工业自动化中&#xff0c;上位机负责向下位机下发指令并获取反馈信息&#xff0c;以控制生产流程。在机器人控制中&#xff0c;上位机负…

详细教程:如何搭建废品回收小程序

废品回收是一项环保举措&#xff0c;通过回收和再利用废弃物品&#xff0c;可以减少资源浪费和环境污染。近年来&#xff0c;随着智能手机的普及&#xff0c;小程序成为了推广和运营的重要工具。本文将详细介绍如何搭建一个废品回收小程序。 1. 进入乔拓云网后台 首先&#xf…

Maven: ‘mvn‘ is not recognized as an internal or external command

下载并配置好Maven之后&#xff0c;CMD测试安装是否成功&#xff1a;mvn -v 提示&#xff1a; mvn is not recognized as an internal or external command, operable program or batch file. 检查环境变量&#xff1a; MAVEN_HOME: %MAVEN_HOME%\bin: 看上去没问题&#x…

pinctrl设备树节点映射详细分析imx_dt_node_to_map

pinctrl设备树节点映射详细分析imx_dt_node_to_map 文章目录 pinctrl设备树节点映射详细分析imx_dt_node_to_mapstruct pinctrl_mapreally_probepinctrl_bind_pinscreate_pinctrlpinctrl_dt_to_mapdt_to_map_one_configdt_remember_or_free_mappinctrl_register_map add_settin…

Linux网络服务之部署yum仓库

yum &#xff1f; yum ! 一、YUM概述1.1 yum简介1.2 yum工作原理 二、yum 配置文件2.1 yum主配置文件2.2 yum仓库设置文件2.2.1 配置文件主要格式2.2.2 软件仓库的提供方式2.2.3 日志文件 三、yum命令详解3.1 安装和升级3.2 查询3.2.1 显示可用的安装包 ----- yum list3.2.2 显…

数据结构笔记--归并排序及其拓展题(小和问题、逆序对问题)

目录 1--归并排序 2--小和问题 3--逆序对问题 1--归并排序 归并排序的核心思想&#xff1a;将一个无序的序列归并排序为一个有序的系列&#xff1b;通过递归将无序的序列二分&#xff0c;从底层开始将二分的序列归并排序为有序序列&#xff1b; #include <iostream> #…

手工测试VS自动化测试到底那个更胜一筹?

手工与自动化只是一种形式&#xff0c;真正的核心是测试用例、业务模型和测试分析。当企业的产品规模开始膨胀的时候&#xff0c;尤其是产品迭代加快是不是能及时得到测试验证支持是很重要的。这些靠手工测试是基本无法实现的&#xff0c;手工测试会严重的拖慢产品进度&#xf…

快速排序和qsort函数详解详解qsort函数

&#x1f495;是非成败转头空&#xff0c;青山依旧在&#xff0c;几度夕阳红&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;快速排序和qsort函数详解 前言&#xff1a; 我们之前学习过冒泡排序&#xff0c;冒泡排序尽管很方便&#xff0c;但也存在一些局限性…

类图的6种关系和golang应用

文章目录 1. 依赖和关联1.1 依赖&#xff08;Dependency&#xff09;概念类图示例代码示例 1.2 关联&#xff08;Association&#xff09;概念类图示例代码示例 2. 组合和聚合&#xff08;特殊的关联关系&#xff09;2.1 聚合&#xff08;Aggregation&#xff09;概念类图示例代…

nginx编译以及通过自定义生成证书配置https

1. 环境准备 1.1 软件安装 nginx安装编译安装以及配置https&#xff0c;需要gcc-c pcre-devel openssl openssl-devel软件。因此需要先安装相关软件。 yum -y install gcc-c pcre-devel openssl openssl-devel wgetopenssl/openssl-devel&#xff1a;主要用于nginx编译的htt…

Unity限制在一个范围内移动

Unity限制在一个范围内移动 这个例子中&#xff0c;我们学习Vector3.ClampMagnitude的用法&#xff0c;限制小球在范围内移动。 在地图上放了一个小球&#xff0c;让他移动&#xff0c;但是不想让他掉下去&#xff0c;限制在一个球星范围内&#xff0c;就好像绳子拴住了一样&…

MySQL流程控制(二十八)

二八佳人体似酥&#xff0c;腰悬利剑斩愚夫&#xff0c;虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL变量(二十七) ,如果没有看过,请观看上一章 一. 定义条件与处理程序 定义条件是事先定义程序执行过程中可能遇到的问题&#xff0c;处理程序定义了在遇到问题时应…

跨境B2B2C多用户购物网站源码快速部署

​ 搭建跨境B2B2C多用户购物网站需要以下步骤&#xff1a; 1. 确定业务模式和定位&#xff1a;确定网站的业务模式&#xff0c;包括跨境B2B2C的商业模式以及目标用户定位。 2. 营业执照和域名注册&#xff1a;根据当地法律要求&#xff0c;注册一家具有法人资格的公司&#xff…