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

模拟场景校验请求参数

 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*/@Beanpublic MessageSource messageSource() {ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();messageSource.setBasenames("i18n/messages");messageSource.setDefaultEncoding("UTF-8");return messageSource;}/*** 工具类注入*/@PostConstructprivate 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_CNlocale-resolver: fixedmessages: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.hqwc.cn/news/57549.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter命令行运行实例讲解

1. 简介 使用非 GUI 模式&#xff0c;即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资 本文介绍windows下以命令行模式运行的方法。 1.1. 命令介绍 jmeter -n -t <testplan filename> -l <listener filename> 示例&#xff1a; jmeter -n -t test…

跨境商城系统源码的优势,助力企业海外扩张

跨境电商发展背景与趋势 随着全球化的推进和互联网技术的快速发展&#xff0c;跨境电商已成为企业海外拓展的重要途径。然而&#xff0c;跨境电商面临着诸多挑战&#xff0c;如复杂的海外市场、文化差异、海关监管等。为了解决这些问题&#xff0c;企业可以借助跨境商城系统源码…

试图将更改推送到 GitHub,但是远程仓库已经包含了您本地没有的工作(可能是其他人提交的修改)

这通常是由于其他人或其他仓库推送到了相同的分支上&#xff0c;导致您的本地仓库和远程仓库之间存在冲突。 错误信息&#xff1a; To github.com:8upersaiyan/CKmuduo.git ! [rejected] main -> main (fetch first) error: failed to push some refs to github.com:8upers…

无涯教程-Perl - continue 语句函数

可以在 while 和 foreach 循环中使用continue语句。 continue - 语法 带有 while 循环的 continue 语句的语法如下- while(condition) {statement(s); } continue {statement(s); } 具有 foreach 循环的 continue 语句的语法如下- foreach $a (listA) {statement(s); } co…

SpringBoot集成百度人脸识别实现登陆注册功能Demo(二)

前言 上一篇SpringBoot集成百度人脸demo中我使用的是调用本机摄像头完成人脸注册&#xff0c;本次demo根据业务需求的不同我采用文件上传的方式实现人脸注册。 效果演示 首页 注册 后端响应数据&#xff1a; 登录 后端响应数据&#xff1a; 项目结构 后端代码实现 1、Bai…

2022 robocom 世界机器人开发者大赛-本科组(国赛)

RC-u1 智能红绿灯 题目描述&#xff1a; RC-u1 智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路&#xff0c;在某养老社区前&#xff0c;某科技公司设置了一个智能红绿灯。 这个红绿灯是这样设计的&#xff1a; 路的两旁设置了一个按钮&#xff0c;老年人希望通行马路时会…

职责链模式(C++)

定义 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递请求&#xff0c;直到有一个对象处理它为止。 应用场景 在软件构建过程中&#xff0c;一个请求可能被多个对象处理&#xff0c;…

PotPlayer播放时、拖动播放条,CPU占用率高、卡顿

鼠标右击播放界面&#xff0c;滤镜/解码器管理 > 视频解码器 > 内置解码器/DXVA设置 > 勾选使用硬件加速&#xff0c;确定&#xff0c;关闭播放器再重新打开即可&#xff1b; 其他播放软件同理。 高级设置&#xff1a;https://www.hao4k.cn/thread-26475-1-1.html

冒泡排序 简单选择排序 插入排序 快速排序

bubblesort 两个for循环&#xff0c;从最右端开始一个一个逐渐有序 #include <stdio.h> #include <string.h> #include <stdlib.h>void bubble(int *arr, int len); int main(int argc, char *argv[]) {int arr[] {1, 2, 3, 4, 5, 6, 7};int len sizeof(…

Gson 添加数据默认值问题记录

问题&#xff1a;在用Gson add(key&#xff08;string类型&#xff09;&#xff0c;value&#xff08;必须是JsonElement子类&#xff09;&#xff09;时发现&#xff0c;value 传了 "" 空字符串&#xff08;非null&#xff09;&#xff0c;默认解析后返回null&#…

C# OpenCvSharp 去水印 图像修复

效果 项目 VS2022.net4.8OpenCvSharp4 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; usi…

以太网DHCP协议(十)

目录 一、工作原理 二、DHCP报文 2.1 DHCP报文类型 2.2 DHCP报文格式 当网络内部的主机设备数量过多是&#xff0c;IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配&#xff0c;TCPIP协议栈中引入了DHCP协议。 一、工作原理 使用DHCP之…