Skip to content

Commit 256d93d

Browse files
committed
提交gitignore,解决StringUtils.lowerCaseFirst潜在的NPE异常,校验修改为@RequestParam参数校验,lombok之@DaTa@slf4j优化,fix JdbcDAO模板类名显示为中文问题,WebMvcConfig整合MessageConverter,模板代码分类(感谢@liutf@tfgzs的pull request)
1 parent 6fb2cba commit 256d93d

34 files changed

Lines changed: 157 additions & 387 deletions

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/.idea
2+
/target/*
3+
.idea
4+
*.iml
5+
*.ipr

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ SpringBootCodeGenerator
1616
<tr><td>CSDN博客</td> <td>http://blog.csdn.net/moshowgame</td></tr>
1717
<tr><td></td> <td></td></tr>
1818
<tr><td>更新日期</td> <td>更新内容</td></tr>
19+
<tr><td>20190211<td>提交gitignore,解决StringUtils.lowerCaseFirst潜在的NPE异常,校验修改为@RequestParam参数校验,lombok之@Data和@Slf4j优化,fix JdbcDAO模板类名显示为中文问题,WebMvcConfig整合MessageConverter,模板代码分类(感谢@liutf和@tfgzs的pull request)。</td></tr>
20+
<tr><td>20190210<td>实体生成规则切换为包装类型,不再采用基本数据类型,为实体类生成添加显示的默认构造方法(感谢@h2so的pull request)。</td></tr>
1921
<tr><td>20190106<td>修复处理number/decimal(x,x)类型的逻辑(感谢@arthaschan的反馈),修复JdbcTemplates模板两处错误(感谢@everflourish的反馈)。</td></tr>
2022
<tr><td>20181212<td>首页UI优化,新增MybatisPlus模块(感谢@三叔同事的建议),修复作者名和包名获取失败问题(感谢@Yanch1994的反馈)。</td></tr>
2123
<tr><td>20181122<td>优化正则表达式点号的处理,优化处理字段类型,对number类型增加int,long,BigDecimal的区分判断(感谢@lshz0088的指导)。</td></tr>

generator-web/src/main/java/com/softdev/system/generator/config/CorsFilter.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

generator-web/src/main/java/com/softdev/system/generator/config/FastjsonConverter.java

Lines changed: 0 additions & 50 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.softdev.system.generator.config;
2+
3+
import com.alibaba.fastjson.support.config.FastJsonConfig;
4+
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.http.MediaType;
7+
import org.springframework.http.converter.HttpMessageConverter;
8+
import org.springframework.http.converter.StringHttpMessageConverter;
9+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
10+
11+
import java.nio.charset.Charset;
12+
import java.util.ArrayList;
13+
import java.util.List;
14+
/**
15+
* 2019-2-11 liutf WebMvcConfig 整合 cors 和 SpringMvc MessageConverter
16+
*/
17+
@Configuration
18+
public class WebMvcConfig implements WebMvcConfigurer {
19+
20+
/* @Override
21+
public void addCorsMappings(CorsRegistry registry) {
22+
registry.addMapping("/**")
23+
.allowedOrigins("*")
24+
.allowedHeaders("x-requested-with")
25+
.allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "TRACE")
26+
.maxAge(3600);
27+
}*/
28+
29+
@Override
30+
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
31+
//FastJsonHttpMessageConverter
32+
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
33+
34+
List<MediaType> fastMediaTypes = new ArrayList<>();
35+
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
36+
fastConverter.setSupportedMediaTypes(fastMediaTypes);
37+
38+
FastJsonConfig fastJsonConfig = new FastJsonConfig();
39+
fastJsonConfig.setCharset(Charset.forName("UTF-8"));
40+
fastConverter.setFastJsonConfig(fastJsonConfig);
41+
42+
//StringHttpMessageConverter
43+
StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
44+
stringConverter.setDefaultCharset(Charset.forName("UTF-8"));
45+
stringConverter.setSupportedMediaTypes(fastMediaTypes);
46+
converters.add(stringConverter);
47+
converters.add(fastConverter);
48+
}
49+
}

generator-web/src/main/java/com/softdev/system/generator/controller/IndexController.java

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import com.softdev.system.generator.util.CodeGeneratorTool;
66
import com.softdev.system.generator.util.FreemarkerTool;
77
import freemarker.template.TemplateException;
8+
import lombok.extern.slf4j.Slf4j;
89
import org.apache.commons.lang3.StringUtils;
9-
import org.slf4j.Logger;
10-
import org.slf4j.LoggerFactory;
1110
import org.springframework.beans.factory.annotation.Autowired;
1211
import org.springframework.stereotype.Controller;
1312
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.RequestParam;
1414
import org.springframework.web.bind.annotation.ResponseBody;
1515

1616
import java.io.IOException;
@@ -22,8 +22,8 @@
2222
* @author zhengk/moshow
2323
*/
2424
@Controller
25+
@Slf4j
2526
public class IndexController {
26-
private static final Logger logger = LoggerFactory.getLogger(IndexController.class);
2727

2828
@Autowired
2929
private FreemarkerTool freemarkerTool;
@@ -35,16 +35,17 @@ public String index() {
3535

3636
@RequestMapping("/genCode")
3737
@ResponseBody
38-
public ReturnT<Map<String, String>> codeGenerate(String tableSql,String authorName,String packageName) {
38+
public ReturnT<Map<String, String>> codeGenerate(String tableSql,
39+
//2019-2-10 liutf 修改为@RequestParam参数校验
40+
@RequestParam(required = false, defaultValue = "大狼狗") String authorName,
41+
@RequestParam(required = false, defaultValue = "com.softdev.system")String packageName
42+
) {
3943

40-
if(StringUtils.isBlank(authorName)) authorName="大狼狗";
41-
42-
if(StringUtils.isBlank(packageName)) packageName="com.softdev.system";
4344

4445
try {
4546

4647
if (StringUtils.isBlank(tableSql)) {
47-
return new ReturnT<Map<String, String>>(ReturnT.FAIL_CODE, "表结构信息不可为空");
48+
return new ReturnT<>(ReturnT.FAIL_CODE, "表结构信息不可为空");
4849
}
4950

5051
// parse table
@@ -60,31 +61,30 @@ public ReturnT<Map<String, String>> codeGenerate(String tableSql,String authorNa
6061
Map<String, String> result = new HashMap<String, String>();
6162

6263
//UI
63-
result.put("swaggerui", freemarkerTool.processString("xxl-code-generator/swagger-ui.ftl", params));
64-
result.put("elementui", freemarkerTool.processString("xxl-code-generator/element-ui.ftl", params));
65-
result.put("bootstrap", freemarkerTool.processString("xxl-code-generator/bootstrap.ftl", params));
66-
64+
result.put("swagger-ui", freemarkerTool.processString("code-generator/ui/swagger-ui.ftl", params));
65+
result.put("element-ui", freemarkerTool.processString("code-generator/ui/element-ui.ftl", params));
66+
result.put("bootstrap-ui", freemarkerTool.processString("code-generator/ui/bootstrap-ui.ftl", params));
6767
//mybatis old
68-
result.put("controller", freemarkerTool.processString("xxl-code-generator/controller.ftl", params));
69-
result.put("service", freemarkerTool.processString("xxl-code-generator/service.ftl", params));
70-
result.put("service_impl", freemarkerTool.processString("xxl-code-generator/service_impl.ftl", params));
71-
result.put("dao", freemarkerTool.processString("xxl-code-generator/dao.ftl", params));
72-
result.put("mybatis", freemarkerTool.processString("xxl-code-generator/mybatis.ftl", params));
73-
result.put("model", freemarkerTool.processString("xxl-code-generator/model.ftl", params));
68+
result.put("controller", freemarkerTool.processString("code-generator/mybatis/controller.ftl", params));
69+
result.put("service", freemarkerTool.processString("code-generator/mybatis/service.ftl", params));
70+
result.put("service_impl", freemarkerTool.processString("code-generator/mybatis/service_impl.ftl", params));
71+
result.put("dao", freemarkerTool.processString("code-generator/mybatis/dao.ftl", params));
72+
result.put("mybatis", freemarkerTool.processString("code-generator/mybatis/mybatis.ftl", params));
73+
result.put("model", freemarkerTool.processString("code-generator/mybatis/model.ftl", params));
7474
//jpa
75-
result.put("entity", freemarkerTool.processString("xxl-code-generator/entity.ftl", params));
76-
result.put("repository", freemarkerTool.processString("xxl-code-generator/repository.ftl", params));
77-
result.put("jpacontroller", freemarkerTool.processString("xxl-code-generator/jpacontroller.ftl", params));
75+
result.put("entity", freemarkerTool.processString("code-generator/jpa/entity.ftl", params));
76+
result.put("repository", freemarkerTool.processString("code-generator/jpa/repository.ftl", params));
77+
result.put("jpacontroller", freemarkerTool.processString("code-generator/jpa/jpacontroller.ftl", params));
7878
//jdbc template
79-
result.put("jtdao", freemarkerTool.processString("xxl-code-generator/jtdao.ftl", params));
80-
result.put("jtdaoimpl", freemarkerTool.processString("xxl-code-generator/jtdaoimpl.ftl", params));
79+
result.put("jtdao", freemarkerTool.processString("code-generator/jdbc-template/jtdao.ftl", params));
80+
result.put("jtdaoimpl", freemarkerTool.processString("code-generator/jdbc-template/jtdaoimpl.ftl", params));
8181
//beetsql
82-
result.put("beetlmd", freemarkerTool.processString("xxl-code-generator/beetlmd.ftl", params));
83-
result.put("beetlentity", freemarkerTool.processString("xxl-code-generator/beetlentity.ftl", params));
84-
result.put("beetlcontroller", freemarkerTool.processString("xxl-code-generator/beetlcontroller.ftl", params));
82+
result.put("beetlmd", freemarkerTool.processString("code-generator/beetlsql/beetlmd.ftl", params));
83+
result.put("beetlentity", freemarkerTool.processString("code-generator/beetlsql/beetlentity.ftl", params));
84+
result.put("beetlcontroller", freemarkerTool.processString("code-generator/beetlsql/beetlcontroller.ftl", params));
8585
//mybatis plus
86-
result.put("pluscontroller", freemarkerTool.processString("xxl-code-generator/pluscontroller.ftl", params));
87-
result.put("plusmapper", freemarkerTool.processString("xxl-code-generator/plusmapper.ftl", params));
86+
result.put("pluscontroller", freemarkerTool.processString("code-generator/mybatis-plus/pluscontroller.ftl", params));
87+
result.put("plusmapper", freemarkerTool.processString("code-generator/mybatis-plus/plusmapper.ftl", params));
8888

8989
// 计算,生成代码行数
9090
int lineNum = 0;
@@ -93,13 +93,13 @@ public ReturnT<Map<String, String>> codeGenerate(String tableSql,String authorNa
9393
lineNum += StringUtils.countMatches(item.getValue(), "\n");
9494
}
9595
}
96-
logger.info("生成代码行数:{}", lineNum);
96+
log.info("生成代码行数:{}", lineNum);
9797
//测试环境可自行开启
98-
//logger.info("生成代码数据:{}", result);
99-
return new ReturnT<Map<String, String>>(result);
98+
//log.info("生成代码数据:{}", result);
99+
return new ReturnT<>(result);
100100
} catch (IOException | TemplateException e) {
101-
logger.error(e.getMessage(), e);
102-
return new ReturnT<Map<String, String>>(ReturnT.FAIL_CODE, "表结构解析失败"+e.getMessage());
101+
log.error(e.getMessage(), e);
102+
return new ReturnT<>(ReturnT.FAIL_CODE, "表结构解析失败"+e.getMessage());
103103
}
104104

105105
}
Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,20 @@
11
package com.softdev.system.generator.entity;
22

3+
import lombok.Data;
4+
35
import java.util.List;
46

57
/**
68
* class info
79
*
810
* @author xuxueli 2018-05-02 20:02:34
911
*/
12+
@Data
1013
public class ClassInfo {
1114

1215
private String tableName;
1316
private String className;
1417
private String classComment;
15-
1618
private List<FieldInfo> fieldList;
1719

18-
public String getTableName() {
19-
return tableName;
20-
}
21-
22-
public void setTableName(String tableName) {
23-
this.tableName = tableName;
24-
}
25-
26-
public String getClassName() {
27-
return className;
28-
}
29-
30-
public void setClassName(String className) {
31-
this.className = className;
32-
}
33-
34-
public String getClassComment() {
35-
return classComment;
36-
}
37-
38-
public void setClassComment(String classComment) {
39-
this.classComment = classComment;
40-
}
41-
42-
public List<FieldInfo> getFieldList() {
43-
return fieldList;
44-
}
45-
46-
public void setFieldList(List<FieldInfo> fieldList) {
47-
this.fieldList = fieldList;
48-
}
49-
5020
}
Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,18 @@
11
package com.softdev.system.generator.entity;
22

3+
import lombok.Data;
4+
35
/**
46
* field info
57
*
68
* @author xuxueli 2018-05-02 20:11:05
79
*/
10+
@Data
811
public class FieldInfo {
912

1013
private String columnName;
1114
private String fieldName;
1215
private String fieldClass;
1316
private String fieldComment;
1417

15-
public String getColumnName() {
16-
return columnName;
17-
}
18-
19-
public void setColumnName(String columnName) {
20-
this.columnName = columnName;
21-
}
22-
23-
public String getFieldName() {
24-
return fieldName;
25-
}
26-
27-
public void setFieldName(String fieldName) {
28-
this.fieldName = fieldName;
29-
}
30-
31-
public String getFieldClass() {
32-
return fieldClass;
33-
}
34-
35-
public void setFieldClass(String fieldClass) {
36-
this.fieldClass = fieldClass;
37-
}
38-
39-
public String getFieldComment() {
40-
return fieldComment;
41-
}
42-
43-
public void setFieldComment(String fieldComment) {
44-
this.fieldComment = fieldComment;
45-
}
46-
4718
}

0 commit comments

Comments
 (0)