记录基于若依SpringCloud版本的I8n国际化子模块开发

本文记录了在ruoyi-common模块下开发基于SpringCloud的I18n国际化子模块的过程,包括添加子模块、配置国际化依赖、工程目录结构、关键类的介绍,如I18nUtil工具类和国际化配置类。同时提到了在system模块中引用子模块时的pom配置,并展示了如何在全局异常处理中使用国际化。需要注意在gateway模块和语言切换时的特殊处理,以及未来可能加入Redis支持的计划。
摘要由CSDN通过智能技术生成

1.在ruoyi-common模块下添加子模块ruoyi-common-i18n

2.先看下国际化包的pom.xml

因为后续考虑会将国际化语言配置文件内容加载到redis中去,所以此处预留引入了redis相关的依赖,

注意这是属于子模块,不作为单独项目运行,独立运行的模块都是基于SpringMVC相关的拦截来处理。如自定义验证表演,和自定义标签,都需要响应的处理。

所以这里会引入spring-boot-starter-web依赖,虽然不会重复依赖,为了使结构清晰,在引用国际化模块时,我会排除国际化包引入的spring-boot-starter-web依赖。后续会截图说明。

3.工程目录结构

4.因为ruoyi-springCloud版本是基于Nacos读取配置文件,所以在在配置类编写时,读取国际化配置文件,可以相对比较灵活。以下是介绍下比较关键的几个类

4.1 I18nUtil,国际化工具类,主要用于根据key和语言进行国际化语言转换

package com.ruoyi.common.i18n.utils;

import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.TokenUtil;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.c
一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错效率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 您是否在找一套合适后台管理系统。 您是否在找一套代码易读易懂后台管理系统。 那么,现在若依来了。诚意奉献之作 若依是给刚出生的女儿取的名字 寓意:你若不离不弃,我必生死相依 内置功能 用户管理:用户是系统操作者。 部门管理:配置系统组织机构。 岗位管理:岗位是用户所属职务。 菜单管理:配置系统菜单(支持控制到按钮)。 角色管理:角色菜单权限分配。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 操作日志:系统操作日志记录(含异常)。 登录日志:系统登录情况记录(含异常)。 在线用户:当前系统中活跃用户状态监控。 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 为何选择若依 是一个完全响应式,基于Bootstrap3.3.6最新版本开发的主题。 她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。 拥有良好的代码结构,层次结构清晰。内置一系列基础功能。 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到按钮。 提供在线功能代码生成工具,提高开发效率及质量。 提供常用工具类封装,日志、国际化、缓存、验证、字典等数据。 兼容目前最流行浏览器(IE7+、Chrome、Firefox)手机移动端也支持。 技术选型 1、后端 核心框架:Spring Boot 安全框架:Apache Shiro 模板引擎:Thymeleaf 持久层框架:MyBatis 数据库连接池:Druid 缓存框架:Ehcache 日志管理:SLF4J 工具类:Apache Commons Fastjson POJO:Lombok 2、前端 框架:Bootstrap 数据表格:Bootstrap Table 客户端验证:JQuery Validation 树结构控件:zTree 弹出层:layer 3、平台 服务器中间件:SpringBoot内置 数据库支持:目前仅提供MySql数据库的支持,但不限于数据库 开发环境:Java、Eclipse、Maven、Git
好的,这是一个关于Python正则表达式识别Verilog实例化模块,实例化时带有参数的问题。我会尽力回答。 首先,Verilog模块实例化是通过在代码中使用模块名和端口列表来完成的。当实例化模块时,我们可以传递参数值给模块,这些参数值可以在模块中使用。 在Python中,我们可以使用re模块来编写正则表达式来匹配Verilog代码中的模块实例化。下面是一个示例正则表达式,可以用来匹配带有参数的模块实例化: ```python import re code = """ module my_module #(parameter WIDTH = 8) ( input clk, input [WIDTH-1:0] data_in, output reg [WIDTH-1:0] data_out ); // some Verilog code here endmodule module top_module; // module instantiation with parameters my_module #(.WIDTH(16)) inst_name ( .clk(clk), .data_in(data_in), .data_out(data_out) ); endmodule """ # regular expression to match module instantiation with parameters pattern = r'module\s+(\w+)\s*#\s*\(([\w\s,=]+)\)\s*(\w+)\s*\(\s*(\.[\w\s,]+\s*\([^)]+\)\s*,?\s*)+\);' # find all module instantiations with parameters matches = re.findall(pattern, code) # print the matches print(matches) ``` 在上面的示例中,正则表达式模式使用了分组和字符类来匹配带有参数的模块实例化。其中: - 第一个分组匹配模块名称。 - 第二个分组匹配参数列表。 - 第三个分组匹配实例名称。 - 第四个分组匹配端口连接。 在代码中,我们使用re.findall函数来查找所有匹配项,并将它们存储在列表变量matches中。最后,我们打印出匹配项列表。 希望这个回答能够帮助你解决问题。如果你还有其他问题,请随时问我。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值