Skip to content

Commit 23b5d46

Browse files
🚔 foobar代码生成示例
1 parent 4a339ec commit 23b5d46

File tree

15 files changed

+536
-101
lines changed

15 files changed

+536
-101
lines changed

CHANGELOG_TODO.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
# CHANGELOG TODO
22

3+
## [V1.4]
4+
- 部门树形列表
5+
36
## [V1.5]
4-
- 代码生成起优化,是否生成自定义update方法
7+
- 代码生成起优化,是否生成自定义update方法,生成version,deleted注解
58
- 黑白名单,配置文件和数据库可配置,并缓存到Redis
69
- Redis Cache注解使用
710
- ok http工具类
8-
- Excel解析
11+
- Excel解析,导入导出
912
- 项目代码遵循阿里代码规范优化
1013
- 字典表
1114
- 配置参数表
1215
- 上传文件附件表
1316
- Redis分布式锁
17+
- 接口限流,ip限流,频率限流
18+
- Shiro Redis缓存
19+
- ApplicationRunner
20+
1421

1522
## [V1.6]
16-
- Spring security集成
23+
- Spring security集成
24+
- HikariCP

README-zh.md

Lines changed: 32 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -103,43 +103,36 @@ mvn clean package -Plocal
103103
### 1. 创建数据库表
104104
```sql
105105
-- ----------------------------
106-
-- Table structure for sys_user
106+
-- Table structure for foo_bar
107107
-- ----------------------------
108-
DROP TABLE IF EXISTS `sys_user`;
109-
CREATE TABLE `sys_user`
108+
DROP TABLE IF EXISTS `foo_bar`;
109+
CREATE TABLE `foo_bar`
110110
(
111111
`id` bigint(20) NOT NULL COMMENT '主键',
112-
`username` varchar(20) NOT NULL COMMENT '用户名',
113-
`nickname` varchar(20) DEFAULT NULL COMMENT '昵称',
114-
`password` varchar(64) NOT NULL COMMENT '密码',
115-
`salt` varchar(32) DEFAULT NULL COMMENT '盐值',
116-
`phone` varchar(20) NOT NULL COMMENT '手机号码',
117-
`gender` int(11) NOT NULL DEFAULT '1' COMMENT '性别,0:女,1:男,默认1',
118-
`head` varchar(200) null comment '头像',
119-
`remark` varchar(200) DEFAULT NULL COMMENT 'remark',
120-
`state` int(11) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用,2:锁定',
121-
`department_id` bigint(20) NOT NULL COMMENT '部门id',
122-
`role_id` bigint(20) NOT NULL COMMENT '角色id',
123-
`deleted` int(11) NOT NULL DEFAULT '0' COMMENT '逻辑删除,0:未删除,1:已删除',
112+
`name` varchar(20) NOT NULL COMMENT '名称',
113+
`foo` varchar(20) DEFAULT NULL COMMENT 'Foo',
114+
`bar` varchar(20) NOT NULL COMMENT 'Bar',
115+
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
116+
`state` int(11) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用',
124117
`version` int(11) NOT NULL DEFAULT '0' COMMENT '版本',
125118
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
126119
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
127-
PRIMARY KEY (`id`),
128-
UNIQUE KEY `sys_user_username_uindex` (`username`)
120+
PRIMARY KEY (`id`)
129121
) ENGINE = InnoDB
130122
DEFAULT CHARSET = utf8mb4
131-
COLLATE = utf8mb4_general_ci COMMENT ='系统用户';
123+
COLLATE = utf8mb4_general_ci COMMENT ='FooBar';
132124

133125
-- ----------------------------
134-
-- Records of sys_user
126+
-- Records of foo_bar
135127
-- ----------------------------
136-
INSERT INTO sys_user (id, username, nickname, password, salt, phone, gender, head, remark, state, department_id, role_id, deleted, version, create_time, update_time)
137-
VALUES (1, 'admin', '管理员', '11a254dab80d52bc4a347e030e54d861a9d2cdb2af2185a9ca4a7318e830d04d', '666', '', 1, 'http://localhost:8888//resource/201910281559227.jpg', 'Administrator Account', 1, 1, 1, 0, 1, '2019-08-26 00:52:01', '2019-10-27 23:32:29');
138-
INSERT INTO sys_user (id, username, nickname, password, salt, phone, gender, head, remark, state, department_id, role_id, deleted, version, create_time, update_time)
139-
VALUES (2, 'test', '测试人员', '34783fb724b259beb71a1279f7cd93bdcfd92a273d566f926419a37825c500df', '087c2e9857f35f1e243367f3b89b81c1', '', 1, null, 'Tester Account', 1, 1, 2, 0, 0, '2019-10-05 14:04:27', null);
128+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
129+
VALUES (1, 'FooBar', 'foo', 'bar', 'remark...', 1, 0, '2019-11-01 14:05:14', null);
130+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
131+
VALUES (2, 'HelloWorld', 'hello', 'world', null, 1, 0, '2019-11-01 14:05:14', null);
140132

141133
```
142134

135+
143136
### 2.使用代码生成器生成增删改查代码
144137
> 修改数据库信息
145138
@@ -175,7 +168,7 @@ public class SpringBootPlusGenerator {
175168

176169
// 组件作者等配置
177170
codeGenerator
178-
.setModuleName("system")
171+
.setModuleName("foobar")
179172
.setAuthor("geekidea")
180173
.setPkIdColumnName("id");
181174

@@ -201,7 +194,7 @@ public class SpringBootPlusGenerator {
201194
.setGeneratorMapperXml(true);
202195

203196
// 是否生成Shiro RequiresPermissions注解
204-
codeGenerator.setRequiresPermissions(true);
197+
codeGenerator.setRequiresPermissions(false);
205198

206199
// 是否覆盖已有文件
207200
codeGenerator.setFileOverride(true);
@@ -212,9 +205,7 @@ public class SpringBootPlusGenerator {
212205
// 需要生成的表数组
213206
// xxx,yyy,zzz为需要生成代码的表名称
214207
String[] tables = {
215-
"xxx",
216-
"yyy",
217-
"zzz",
208+
"foo_bar"
218209
};
219210

220211
// 循环生成
@@ -233,31 +224,30 @@ public class SpringBootPlusGenerator {
233224
> 生成的代码结构
234225
235226
```text
236-
/src/main/java/io/geekidea/springbootplus/system
227+
/src/main/java/io/geekidea/springbootplus/foobar
237228
```
238229

239230
```text
240-
└── system
231+
└── foobar
232+
├── controller
233+
│   └── FooBarController.java
241234
├── entity
242-
│   └── SysUser.java
235+
│   └── FooBar.java
243236
├── mapper
244-
│   └── SysUserMapper.java
237+
│   └── FooBarMapper.java
238+
├── param
239+
│   └── FooBarQueryParam.java
245240
├── service
246-
│   ├── SysUserService.java
241+
│   ├── FooBarService.java
247242
│   └── impl
248-
│   └── SysUserServiceImpl.java
249-
└── web
250-
├── controller
251-
│   └── SysUserController.java
252-
├── param
253-
│   └── SysUserQueryParam.java
254-
└── vo
255-
└── SysUserQueryVo.java
243+
│   └── FooBarServiceImpl.java
244+
└── vo
245+
└── FooBarQueryVo.java
256246
```
257247

258248
> Mapper XML
259249
```text
260-
/src/main/resources/mapper/system/SysUserMapper.xml
250+
/src/main/resources/mapper/foobar/FooBarMapper.xml
261251
```
262252

263253
### 3. 启动项目

README.md

Lines changed: 35 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -105,40 +105,32 @@ mvn clean package -Plocal
105105
### 1. Create Table
106106
```sql
107107
-- ----------------------------
108-
-- Table structure for sys_user
108+
-- Table structure for foo_bar
109109
-- ----------------------------
110-
DROP TABLE IF EXISTS `sys_user`;
111-
CREATE TABLE `sys_user`
110+
DROP TABLE IF EXISTS `foo_bar`;
111+
CREATE TABLE `foo_bar`
112112
(
113-
`id` bigint(20) NOT NULL COMMENT 'id',
114-
`username` varchar(20) NOT NULL COMMENT 'username',
115-
`nickname` varchar(20) DEFAULT NULL COMMENT 'nickname',
116-
`password` varchar(64) NOT NULL COMMENT 'password',
117-
`salt` varchar(32) DEFAULT NULL COMMENT 'salt',
118-
`phone` varchar(20) NOT NULL COMMENT 'phone',
119-
`gender` int(11) NOT NULL DEFAULT '1' COMMENT 'gender,0:female,1:male,default:1',
120-
`head` varchar(200) null comment 'head',
121-
`remark` varchar(200) DEFAULT NULL COMMENT 'remark',
122-
`state` int(11) NOT NULL DEFAULT '1' COMMENT 'state,0:disable,1:enable,2:lock',
123-
`department_id` bigint(20) NOT NULL COMMENT 'department id',
124-
`role_id` bigint(20) NOT NULL COMMENT 'role id',
125-
`deleted` int(11) NOT NULL DEFAULT '0' COMMENT 'logic delete,0:not-delete,1:delete',
126-
`version` int(11) NOT NULL DEFAULT '0' COMMENT 'version',
127-
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'create time',
128-
`update_time` timestamp NULL DEFAULT NULL COMMENT 'update time',
129-
PRIMARY KEY (`id`),
130-
UNIQUE KEY `sys_user_username_uindex` (`username`)
113+
`id` bigint(20) NOT NULL COMMENT 'ID',
114+
`name` varchar(20) NOT NULL COMMENT 'Name',
115+
`foo` varchar(20) DEFAULT NULL COMMENT 'Foo',
116+
`bar` varchar(20) NOT NULL COMMENT 'Bar',
117+
`remark` varchar(200) DEFAULT NULL COMMENT 'Remark',
118+
`state` int(11) NOT NULL DEFAULT '1' COMMENT 'State,0:Disable,1:Enable',
119+
`version` int(11) NOT NULL DEFAULT '0' COMMENT 'Version',
120+
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Create Time',
121+
`update_time` timestamp NULL DEFAULT NULL COMMENT 'Update Time',
122+
PRIMARY KEY (`id`)
131123
) ENGINE = InnoDB
132124
DEFAULT CHARSET = utf8mb4
133-
COLLATE = utf8mb4_general_ci COMMENT ='SysUser';
125+
COLLATE = utf8mb4_general_ci COMMENT ='FooBar';
134126

135127
-- ----------------------------
136-
-- Records of sys_user
128+
-- Records of foo_bar
137129
-- ----------------------------
138-
INSERT INTO sys_user (id, username, nickname, password, salt, phone, gender, head, remark, state, department_id, role_id, deleted, version, create_time, update_time)
139-
VALUES (1, 'admin', 'Administrator', '11a254dab80d52bc4a347e030e54d861a9d2cdb2af2185a9ca4a7318e830d04d', '666', '', 1, 'http://localhost:8888//resource/201910281559227.jpg', 'Administrator Account', 1, 1, 1, 0, 1, '2019-08-26 00:52:01', '2019-10-27 23:32:29');
140-
INSERT INTO sys_user (id, username, nickname, password, salt, phone, gender, head, remark, state, department_id, role_id, deleted, version, create_time, update_time)
141-
VALUES (2, 'test', 'Tester', '34783fb724b259beb71a1279f7cd93bdcfd92a273d566f926419a37825c500df', '087c2e9857f35f1e243367f3b89b81c1', '', 1, null, 'Tester Account', 1, 1, 2, 0, 0, '2019-10-05 14:04:27', null);
130+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
131+
VALUES (1, 'FooBar', 'foo', 'bar', 'remark...', 1, 0, '2019-11-01 14:05:14', null);
132+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
133+
VALUES (2, 'HelloWorld', 'hello', 'world', null, 1, 0, '2019-11-01 14:05:14', null);
142134

143135
```
144136

@@ -177,7 +169,7 @@ public class SpringBootPlusGenerator {
177169

178170
// Configuration of component author, etc.
179171
codeGenerator
180-
.setModuleName("system")
172+
.setModuleName("foobar")
181173
.setAuthor("geekidea")
182174
.setPkIdColumnName("id");
183175

@@ -202,7 +194,7 @@ public class SpringBootPlusGenerator {
202194
.setGeneratorMapperXml(true);
203195

204196
// Generated RequiresPermissions Annotation
205-
codeGenerator.setRequiresPermissions(true);
197+
codeGenerator.setRequiresPermissions(false);
206198

207199
// Overwrite existing file or not
208200
codeGenerator.setFileOverride(true);
@@ -212,9 +204,7 @@ public class SpringBootPlusGenerator {
212204

213205
// Table array to be generated
214206
String[] tables = {
215-
"xxx",
216-
"yyy",
217-
"zzz",
207+
"foo_bar"
218208
};
219209

220210
// Cycle generation
@@ -233,31 +223,30 @@ public class SpringBootPlusGenerator {
233223
> Generated code structure
234224
235225
```text
236-
/src/main/java/io/geekidea/springbootplus/system
226+
/src/main/java/io/geekidea/springbootplus/foobar
237227
```
238228

239229
```text
240-
└── system
230+
└── foobar
231+
├── controller
232+
│   └── FooBarController.java
241233
├── entity
242-
│   └── SysUser.java
234+
│   └── FooBar.java
243235
├── mapper
244-
│   └── SysUserMapper.java
236+
│   └── FooBarMapper.java
237+
├── param
238+
│   └── FooBarQueryParam.java
245239
├── service
246-
│   ├── SysUserService.java
240+
│   ├── FooBarService.java
247241
│   └── impl
248-
│   └── SysUserServiceImpl.java
249-
└── web
250-
├── controller
251-
│   └── SysUserController.java
252-
├── param
253-
│   └── SysUserQueryParam.java
254-
└── vo
255-
└── SysUserQueryVo.java
242+
│   └── FooBarServiceImpl.java
243+
└── vo
244+
└── FooBarQueryVo.java
256245
```
257246

258247
> Mapper XML
259248
```text
260-
/src/main/resources/mapper/system/SysUserMapper.xml
249+
/src/main/resources/mapper/foobar/FooBarMapper.xml
261250
```
262251

263252
### 3. Startup Project

docs/db/mysql_spring_boot_plus.sql

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,35 @@ INSERT INTO `sys_log` VALUES (1060438799600861185, 0, 'C', 100000, '2018-11-08 1
6565
INSERT INTO `sys_log` VALUES (1060438809495224322, 0, 'D', 100000, '2018-11-08 15:42:13');
6666

6767

68+
-- ----------------------------
69+
-- Table structure for foo_bar
70+
-- ----------------------------
71+
DROP TABLE IF EXISTS `foo_bar`;
72+
CREATE TABLE `foo_bar`
73+
(
74+
`id` bigint(20) NOT NULL COMMENT '主键',
75+
`name` varchar(20) NOT NULL COMMENT '名称',
76+
`foo` varchar(20) DEFAULT NULL COMMENT 'Foo',
77+
`bar` varchar(20) NOT NULL COMMENT 'Bar',
78+
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
79+
`state` int(11) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用',
80+
`version` int(11) NOT NULL DEFAULT '0' COMMENT '版本',
81+
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
82+
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
83+
PRIMARY KEY (`id`)
84+
) ENGINE = InnoDB
85+
DEFAULT CHARSET = utf8mb4
86+
COLLATE = utf8mb4_general_ci COMMENT ='FooBar';
87+
88+
-- ----------------------------
89+
-- Records of foo_bar
90+
-- ----------------------------
91+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
92+
VALUES (1, 'FooBar', 'foo', 'bar', 'remark...', 1, 0, '2019-11-01 14:05:14', null);
93+
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time)
94+
VALUES (2, 'HelloWorld', 'hello', 'world', null, 1, 0, '2019-11-01 14:05:14', null);
95+
96+
6897
-- ----------------------------
6998
-- Table structure for sys_department
7099
-- ----------------------------

0 commit comments

Comments
 (0)