Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
王红岩
/
cronos-generator-code
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
daf64724
...
daf647248587f079222ef11e1adb2e2b4838be9e
authored
2021-01-06 15:40:21 +0800
by
lWoHvYe
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
生成demo调整。基本运行验证
1 parent
9f68884e
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
165 additions
and
26 deletions
.gitignore
pom.xml
src/main/java/com/topdraw/modules/config/SecurityConfig.java
src/main/resources/banner.txt
src/main/resources/config/application-dev.yml
src/main/resources/log4jdbc.log4j2.properties
src/main/resources/logback.xml
src/main/resources/template/generator/admin/Controller.ftl
src/test/java/com/topdraw/modules/GeneratorCode.java
.gitignore
View file @
daf6472
...
...
@@ -31,3 +31,5 @@ build/
### VS Code ###
.vscode/
logs/*
...
...
pom.xml
View file @
daf6472
...
...
@@ -26,11 +26,6 @@
<artifactId>
cronos-generator
</artifactId>
<version>
1.1.0
</version>
</dependency>
<dependency>
<groupId>
com.topdraw
</groupId>
<artifactId>
cronos-logging
</artifactId>
<version>
1.1.0
</version>
</dependency>
<!-- Spring boot 热部署 : 此热部署会遇到 java.lang.ClassCastException 异常 -->
<!-- optional=true,依赖不会传递-->
...
...
src/main/java/com/topdraw/modules/config/SecurityConfig.java
0 → 100644
View file @
daf6472
package
com
.
topdraw
.
modules
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
;
import
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
;
import
org.springframework.security.config.core.GrantedAuthorityDefaults
;
import
org.springframework.security.config.http.SessionCreationPolicy
;
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity
(
prePostEnabled
=
true
)
public
class
SecurityConfig
extends
WebSecurityConfigurerAdapter
{
@Bean
GrantedAuthorityDefaults
grantedAuthorityDefaults
()
{
// Remove the ROLE_ prefix
return
new
GrantedAuthorityDefaults
(
""
);
}
@Override
protected
void
configure
(
HttpSecurity
httpSecurity
)
throws
Exception
{
httpSecurity
// 禁用 CSRF
.
csrf
().
disable
()
// 授权异常
// .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
// 不创建会话
.
sessionManagement
().
sessionCreationPolicy
(
SessionCreationPolicy
.
STATELESS
).
and
()
// 过滤请求
.
authorizeRequests
()
.
anyRequest
().
permitAll
();
}
}
src/main/resources/banner.txt
0 → 100644
View file @
daf6472
___________ .___
\__ ___/___ ______ __| _/___________ __ _ __
| | / _ \\____ \ / __ |\_ __ \__ \\ \/ \/ /
| |( <_> ) |_> > /_/ | | | \// __ \\ /
|____| \____/| __/\____ | |__| (____ /\/\_/
|__| \/ \/
src/main/resources/config/application-dev.yml
View file @
daf6472
...
...
@@ -54,7 +54,8 @@ spring:
password
:
#连接超时时间
timeout
:
5000
#jwt
#jwt。依赖的common中有需要jwt的部分属性。
jwt
:
header
:
Authorization
secret
:
mySecret
...
...
src/main/resources/log4jdbc.log4j2.properties
0 → 100644
View file @
daf6472
# If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger
log4jdbc.spylogdelegator.name
=
net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.auto.load.popular.drivers
=
false
log4jdbc.drivers
=
com.mysql.cj.jdbc.Driver
\ No newline at end of file
src/main/resources/logback.xml
0 → 100644
View file @
daf6472
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<contextName>
CronosDemo
</contextName>
<!--定义参数,后面可以通过${app.name}使用-->
<property
name=
"app.name"
value=
"cronos-demo"
/>
<property
name=
"log.path"
value=
"./logs"
/>
<property
name=
"log.pattern"
value=
"%d [%thread] %-5level %logger{36} [%file : %line] - %msg%n"
/>
<!--输出到控制台-->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<!--定义控制台输出格式-->
<encoder>
<pattern>
%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %msg %n
</pattern>
<charset>
utf-8
</charset>
</encoder>
</appender>
<!--获取比info级别高(包括info级别)但除error级别的日志-->
<appender
name=
"info"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
ERROR
</level>
<onMatch>
DENY
</onMatch>
<onMismatch>
ACCEPT
</onMismatch>
</filter>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<!--滚动策略-->
<file>
${log.path}/${app.name}-info.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--路径-->
<fileNamePattern>
${log.path}/info/${app.name}-%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>
30
</maxHistory>
<totalSizeCap>
10GB
</totalSizeCap>
</rollingPolicy>
</appender>
<appender
name=
"error"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
ERROR
</level>
</filter>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<!--滚动策略-->
<file>
${log.path}/${app.name}-error.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--路径-->
<fileNamePattern>
${log.path}/error/${app.name}-%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>
30
</maxHistory>
<totalSizeCap>
10GB
</totalSizeCap>
</rollingPolicy>
</appender>
<!--普通日志输出到控制台-->
<root
level=
"info"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
<appender-ref
ref=
"error"
/>
</root>
<!--监控sql日志输出 -->
<logger
name=
"jdbc.sqlonly"
level=
"INFO"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
</logger>
<logger
name=
"jdbc.resultset"
level=
"ERROR"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
</logger>
<!-- 如想看到表格数据,将OFF改为INFO -->
<logger
name=
"jdbc.resultsettable"
level=
"OFF"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
</logger>
<logger
name=
"jdbc.connection"
level=
"OFF"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
</logger>
<logger
name=
"jdbc.sqltiming"
level=
"OFF"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
</logger>
<logger
name=
"jdbc.audit"
level=
"OFF"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"info"
/>
</logger>
</configuration>
src/main/resources/template/generator/admin/Controller.ftl
View file @
daf6472
package ${package}.rest;
import com.topdraw.aop.log.Log;
import ${package}.domain.${className};
import ${package}.service.${className}Service;
import ${package}.service.dto.${className}QueryCriteria;
...
...
@@ -27,35 +26,30 @@ public class ${className}Controller {
private ${className}Service ${changeClassName}Service;
@GetMapping(value = "/download")
@Log("导出数据")
@ApiOperation("导出数据")
public void download(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException {
${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response);
}
@GetMapping
@Log("查询${className}")
@ApiOperation("查询${className}")
public ResponseEntity get${className}s(${className}QueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK);
}
@GetMapping(value = "/all")
@Log("查询所有${className}")
@ApiOperation("查询所有${className}")
public ResponseEntity get${className}s(${className}QueryCriteria criteria) {
return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria),HttpStatus.OK);
}
@PostMapping
@Log("新增${className}")
@ApiOperation("新增${className}")
public ResponseEntity create(@Validated @RequestBody ${className} resources) {
return new ResponseEntity<>(${changeClassName}Service.create(resources),HttpStatus.CREATED);
}
@PutMapping
@Log("修改${className}")
@ApiOperation("修改${className}")
public ResponseEntity update(@Validated @RequestBody ${className} resources) {
${changeClassName}Service.update(resources);
...
...
@@ -63,7 +57,6 @@ public class ${className}Controller {
}
@DeleteMapping(value = "/{${pkChangeColName}}")
@Log("删除${className}")
@ApiOperation("删除${className}")
public ResponseEntity delete(@PathVariable ${pkColumnType} ${pkChangeColName}) {
${changeClassName}Service.delete(${pkChangeColName});
...
...
@@ -74,7 +67,6 @@ public class ${className}Controller {
<#list columns as column>
<#if column.columnName == 'code'>
@GetMapping(value = "/getByCode/{code}")
@Log("根据标识查询")
@ApiOperation(value = "根据标识查询")
public ResponseEntity getByCode(@PathVariable String code) {
return new ResponseEntity(${changeClassName}Service.getByCode(code),HttpStatus.OK);
...
...
src/test/java/com/topdraw/modules/GeneratorCode.java
View file @
daf6472
...
...
@@ -13,6 +13,7 @@ import org.springframework.test.annotation.Rollback;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -33,27 +34,31 @@ public class GeneratorCode {
@Rollback
(
value
=
false
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
generator
()
{
// 表名称,支持多表
var
tableNames
=
Arrays
.
asList
(
"dict"
,
"dict_detail"
);
tableNames
.
forEach
(
tableName
->
{
// 生成的表名称
var
tableName
=
"x_media"
;
//
var tableName = "x_media";
// 拿参数
var
columnsMap
=
(
Map
<
String
,
Object
>)
generatorService
.
getColumns
(
tableName
);
var
columnInfos
=
(
List
<
ColumnInfo
>)
columnsMap
.
get
(
"content"
);
var
columnsMap
=
(
Map
<
String
,
Object
>)
generatorService
.
getColumns
(
tableName
);
var
columnInfos
=
(
List
<
ColumnInfo
>)
columnsMap
.
get
(
"content"
);
// 只生成后端的话,只需要配置下包名和是否覆盖,
var
genConfig
=
new
GenConfig
()
var
genConfig
=
new
GenConfig
()
// 未设置id无法生成
.
setId
(
1L
)
.
setId
(
1L
)
// 根据需求更改包路径
.
setPack
(
"com.topdraw.modules.xxx
"
)
// 前端路径。
.
setPath
(
""
)
.
setPack
(
"com.topdraw.modules.content
"
)
// 前端路径。
不生成前端可置空
.
setPath
(
""
)
// 作者
.
setAuthor
(
"why"
)
.
setAuthor
(
"why"
)
// 表前缀。生成实体时,会移除该前缀
.
setPrefix
(
"x_"
)
.
setPrefix
(
"x_"
)
// 若文件存在,是否进行覆盖
.
setCover
(
true
);
.
setCover
(
true
);
// 生成代码
generatorService
.
generator
(
columnInfos
,
genConfig
,
tableName
);
generatorService
.
generator
(
columnInfos
,
genConfig
,
tableName
);
});
}
}
...
...
Please
register
or
sign in
to post a comment