Jeecg
项目架构

项目本地运行
前端启动
环境要求: 版本要求Node 14.18+ / 16+ 版本以上,不再支持 Node 12 / 13 / 15
cd jeecgboot-vue3
pnpm install
pnpm build
pnpm run dev
// 前端访问地址
http://localhost:3100/
注:
官方说明 pnpm server 命令启动项目,但package.json 文件中根本没有server, 是一个坑

后端启动
删除微服务相关包,maven依赖爆红不影响基本运行;
修改application.yml 中的redis和mysql相关配置;
建议把测试相关代码也一起删除,不然有可能代码提交时过慢
导入sql文件,注意文件中的数据库名称


后端访问地址:http://localhost:8080/
读一行是一行
环境变量切换

<profiles>
<profile>
<id>dev</id>
<properties>
<profile.name>dev对应的变量值</profile.name>
</properties>
<activation>
<!-- 默认生效 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.name>prod对应的变量值</profile.name>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profile.name>pro对应的变量值</profile.name>
</properties>
</profile>
</profiles>
前端请求url携带时间戳参数

1、防重复提交
2、防中间过程加密的破解
3、能避免浏览器对URL的缓存,会使每次请求的URL都不一样,便不会从缓存中读取数据。(但好像只有ie(具体版本不知)浏览器在不加时间戳的情况下,才会发生缓存)
新增模块
- 新增模块中引入父模块以及jeecg-boot-base-core依赖

- 在系统启动模块中引入新增模块依赖

- jeecg-boot-parent 模块中声明新增模块

- 新增模块的包名最好是org.jeecg开头
其他包名可能会因为启动类扫码不到而失效,本质就是该框架是半开源

代码生成
注意jeecg的代码层次结构

注意生成路径,jeecg在jar包中写死了



模糊查询
修改后端/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java,找到installMplus方法下述代码修改即可(取消相关注释)
//根据参数值带什么关键字符串判断走什么类型的查询
QueryRuleEnum rule = convert2Rule(value);
value = replaceValue(rule,value);
// add -begin 添加判断若为字符串类型则设置为模糊查询
if("class java.lang.String".equals(type)) {
// 可以设置左右模糊或全模糊,因人而异
rule = QueryRuleEnum.LIKE;
}
// add -end 添加判断若为字符串类型则设置为模糊查询
addEasyQuery(queryWrapper, name, rule, value);
token失效时间
默认7天失效

文件上传
前端配置:
TODO
后端配置:
注:若是本地存储且容器部署,一定得记得将目录映射出来,不然重启容器会丢失数据

后端关闭登录验证码

跨域问题
首先检查网络是否联通
其次检查是否协议有问题,例如http写成了https
检查是否开启了vpn
前端配置


后端配置
默认已经开启了跨域


数据字典
@Autowired
private ISysDictService sysDictService;
List<DictModel> dictItemsByCode = sysDictService.queryDictItemsByCode("system_module");
Dict注解
本质:通过AOP对目标方法进行拦截,拿到执行结果并对其进行相关操作(添加相应属性字段)
注解适用情况:发现官方仅支持当Result的返回类型为IPage时才进行处理,并不适用于我们需要的Map、List、对象、Json类型。
数据权限控制
本质:RBAC,用户、角色、菜单,通过角色统一分配菜单。
在数据权限的控制上,好多系统采用部门字段进行控制,jeecg也属于这一类,只不过它封装成了配置。
操作步骤
1、配置页面菜单

2、在方法上添加注解
注:此注解一定要有,不然影响过滤查询器的自动添加

3、给菜单配置数据权限



4、角色授权

参考文章:https://help.jeecg.com/java/system/dataauth/dataauthread/
遇到的问题
ERROR org.quartz.impl.StdSchedulerFactory:1250 - Couldn't generate instance Id!
问题描述

解决方案
查看主机名
hostname
编辑hosts文件
vi /etc/hosts
将上面查询到的主机名添加到127.0.0.1 的后面


浙公网安备 33010602011771号