快速开始
环境要求
- 操作系统:Windows、Linux、MacOS
- 数据库:MySQL 5.7+
- JDK:JDK 17
- Maven:3.6+
- Node.js:18.20+
工具(可选)
- IDE:IntelliJ IDEA、VS Code、WebStorm
- 数据库可视化工具:Navicat、DBeaver、SQLyog
- 浏览器:Chrome、Firefox、Safari、Edge
- UniApp 开发工具:HBuilderX、UniApp CLI、微信开发者工具
安装步骤
默认密码
重要
- 账号:admin
- 密码:1111111 (7个1)
Lucky-Admin-Vue
1. 克隆项目到本地
git clone https://gitee.com/xiaodu6/lucky-admin-vue.git
2. 导入数据库
提示
数据库需要自己创建,数据库名称可以自定义,创建完成后,导入SQL文件
# 创建项目必须导入的SQL
数据库文件在根目录下: sql/sql/createProject.sql
# 移动端根据需要导入,若需要使用也要导入前端的SQL
移动端的SQL在根目录下:sql/sql/createApp.sql
3. 修改配置文件
配置文件分为了 dev(开发环境)、prod(生产环境),修改对应的配置文件中的内容可在不同环境中运行项目 其中有3个配置文件需要修改:
- application-dev.yml ## 开发环境配置文件
- application-prod.yml ## 生产环境配置文件
- application.yml ## 公共配置文件
修改使用的配置文件
spring:
application:
name: lucky-admin
profiles:
active: dev ## dev 开发环境,prod 生产环境
重要
不要忘记在对应的配置文件中修改对应的数据库连接信息
4. 前端安装依赖
cd lucky-admin-vue/lucky-admin-ui
npm install pnpm -g
pnpm install
5. 前端启动
npm run dev
6. 后端启动
7. 访问地址
http://localhost:9528 ## 前端
http://localhost:8080/dev-api ## 开发环境后端
http://localhost:8080/prod-api ## 生产环境后端
Lucky-Admin-App
1. 部署Lucky-Admin-Vue的后端
2. 克隆项目到本地
git clone https://gitee.com/xiaodu6/lucky-admin-app-unibest.git
3. 导入移动端数据库
提示
移动端的SQL在根目录下:sql/sql/createApp.sql
注意
移动端的菜单仅仅提供了基础的菜单配置和角色配置,并没有实现动态路由,权限控制使用的是Web端页面的权限控制配置器,因此,若需要使用动态路由是需要自己实现的。
4. 修改配置文件
移动端的后端依赖于Lucky-Admin-Vue的后端故修改配置文件同Lucky-Admin-Vue的后端配置方法相同
5. 移动端安装依赖
npm install pnpm -g
pnpm install
6. 移动端启动
pnpm dev ## 运行H5环境
pnpm dev:mp-weixin ## 运行微信小程序环境
7. 移动端运行到其他平台
类型 | 标识 |
---|---|
微信小程序 | mp-weixin |
支付宝小程序 | mp-alipay |
抖音小程序 | mp-toutiao |
飞书小程序 | mp-lark |
QQ小程序 | mp-qq |
京东小程序 | mp-jd |
小红书小程序 | mp-xhs |
百度小程序 | mp-baidu |
快手小程序 | mp-kuaishou |
配置代码生成器
代码生成器基于MyBatisPlus + Velocity 模板引擎进行编写
数据库配置
配置文件位置: src/main/java/cn/anlucky/luckyadmin/gen/config/GenerationBean.java
数据库的使用取决于当前项目运行启动时使用的数据,使用了 @Value
自动注入配置进行注入获得 数据库的连接信息因此在这里若无其他需求,数据库方面无需进行其他配置
generationPo Bean 对象
generationPo
Bean 为 Lucky-Admin 后端中的一个自定义Bean对象,对象属性中包含了代码生成所需要的配置
配置文件位置: src/main/java/cn/anlucky/luckyadmin/gen/config/GenerationBean.java
@Bean(name = "generationPo")
public GenerationPo generationPo() {
GenerationPo generationPo = new GenerationPo();
generationPo.setDbUrl(dbUrl);
generationPo.setDbUserName(dbUserName);
generationPo.setDbPassword(dbPassword);
generationPo.setAuthor("yifan.du"); // 生成的作者名称
generationPo.setOutputDir("D:/Desktop/luckyGenerator/111"); // 代码生成输出文件的位置
generationPo.setPackageName("cn.anlucky"); // 包名 系统默认的配置,仅在未指定时使用,一般情况下不改 因为在别的地方可以修改
generationPo.setMouldName("system"); // 模块名 系统默认的配置,仅在未指定时使用,一般情况下不改 因为在别的地方可以修改
generationPo.setCreateTimeField("create_time"); // 创建时间 数据库字段名是什么就填什么 表中没有自动填充字段时会忽略,这里可以不修改
generationPo.setUpdateTimeField("update_time"); // MyBatis Plus 修改时间自动填数据库充字段
generationPo.setCreateByField("create_by"); // MyBatis Plus 创建人自动填数据库充字段
generationPo.setUpdateByField("update_by"); // MyBatis Plus 修改人自动填数据库充字段
generationPo.setDeleteFlagField("del_flag"); // MyBatis Plus 逻辑删除自动填数据库充字段
generationPo.setEntityPackage("pojo"); // 实体存放包名称 当前配置生成的包为 cn.anlucky.system.pojo
generationPo.setMapperPackage("mapper"); // mapper cn.anlucky.system.mapper
generationPo.setMapperXmlPackage("mapper.xml"); // cn.anlucky.system.mapper.xml
generationPo.setServicePackage("service"); // cn.anlucky.system.service
generationPo.setServiceImplPackage("service.impl"); // cn.anlucky.system.service.impl
generationPo.setControllerPackage("controller"); // cn.anlucky.system.controller
return generationPo;
}
模板文件
系统内置了两套代码生成的模板,一套为 MybatisPlus 官方提供的 vm 模板,一套为 Lucky-Admin 提供的 vm 模板
配置位置:lucky-admin/src/main/java/cn/anlucky/luckyadmin/gen/config/GenerationPo.java
使用默认模板开关
/**
* 是否使用默认模板
* 默认模板:template/default/*
* 自定义模板:template/lucky/*
* 为true 时使用模板 MyBatis Plus 官方提供的模板,为 false 时 使用的是 Lucky-Admin 提供的模板
*/
public static final boolean isDefalutTemplate = false;
增加自定义模板文件
若不想使用MyBatis Plus 官方提供的模板 和 Lucky-Admin 提供的模板,可以自定义模板,具体步骤为
- 在
src/main/resources/templates
下创建对应的模板文件夹 名字自定义 如:my - 复制粘贴一份
src/main/resources/templates/default
MyBatis Plus 官方提供的模板到my
文件夹 在这个基础上进行修改 - 修改
lucky-admin/src/main/java/cn/anlucky/luckyadmin/gen/config/GenerationPo.java
配置文件中的 getTemplatesMap方法
public Map<String, String> getTemplatesMap() {
if (templatesMap != null){
return templatesMap;
}
templatesMap = new HashMap<>();
if (isDefalutTemplate){
// 设置默认模板位置
templatesMap.put(ENTITY, "/templates/default/java/entity.java"); // 这里的不要动,因为他是MybatisPlus官方提供的模板
templatesMap.put(MAPPER, "/templates/default/java/mapper.java");
templatesMap.put(MAPPER_XML, "/templates/default/xml/mapper.xml");
templatesMap.put(SERVICE, "/templates/default/java/service.java");
templatesMap.put(SERVICE_IMPL, "/templates/default/java/serviceImpl.java");
templatesMap.put(CONTROLLER, "/templates/default/java/controller.java");
}else {
// 设置自定义模板位置
templatesMap.put(ENTITY, "/templates/lucky/java/entity.java"); // 修改这里的路径 lucky 修改为 my(自己定义的模板目录位置)
templatesMap.put(MAPPER, "/templates/lucky/java/mapper.java");
templatesMap.put(MAPPER_XML, "/templates/lucky/xml/mapper.xml");
templatesMap.put(SERVICE, "/templates/lucky/java/service.java");
templatesMap.put(SERVICE_IMPL, "/templates/lucky/java/serviceImpl.java");
templatesMap.put(CONTROLLER, "/templates/lucky/java/controller.java");
}
return templatesMap;
}
注意 isDefalutTemplate 要修改为 false
代码生成使用步骤
了解了配置代码生成器的步骤之后,你已经对代码生成有了基本的认识和配置的改动,接下来是使用步骤
1. 创建 test 测试方法,在 SpringBoot中的测试中创建
为什么要在test中创建?
因为数据库的配置使用的SpringBoot的自动装载和代码生成的配置对象使用了Bean对象,在main方法中无法使用自动装载的特性去加载,因此要在springbootTest 中使用
1.1 创建包 test/java/ -> cn.anlucky.luckyadmin.gen
1.2 创建SpringBoot Test 测试类 MysqlGenService.java
具体内容
@SpringBootTest
public class MysqlGenService {
@Autowired
private GenerationService generationService;
@Test
void generateCode() {
String packageName = "cn.anlucky.luckyadmin"; // 包
String moduleName = "system"; // 模块
String tableName = "sys_users"; // 数据库表
generationService.generateCode(packageName, moduleName,tableName);
// 代码生成后 包名为 cn.anlucky.luckyadmin.system 生成的表名称为 sys_users
}
}
2. 调用执行代码
调用Test后即可生成代码,代码存放位置在控制台有输出
3. 代码放置位置
代码生成后,找到生成的文件,将代码根据自己的包配置的目录,放置自己的代码
如使用 Lucky-Admin 的默认配置,代码放置位置就在
cn.anlucky.luckyadmin.system.pojo ## 放置 实体对象
cn.anlucky.luckyadmin.system.mapper ## 放置 mapper.java (xml 文件统一放置在resource目录下的mapper文件夹下)
cn.anlucky.luckyadmin.system.service ##放置 service
.................... ## 其余的保持一致
4. 前端代码放置位置
前端代码放置位置在 src\views
目录下,因使用的模块为 system 则在 views 下创建文件夹 system 将代码放置为 src\views\system
对应的js文件放置在api
目录下
5. 代码生成后续操作
将生成的文件放置完毕后,要添加对应的动态路由,并将角色添加权限
- 放置代码
- 运行代码
- 添加菜单
- 对应的角色赋值对应菜单的权限
- 删除redis缓存
- 重新登录