Skip to content

Commit f1cdac9

Browse files
author
feiweiwei
committed
Initial commit
0 parents  commit f1cdac9

16 files changed

Lines changed: 780 additions & 0 deletions

File tree

pom.xml

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.monkey01</groupId>
8+
<artifactId>MkFramework</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<parent>
12+
<groupId>org.springframework.boot</groupId>
13+
<artifactId>spring-boot-starter-parent</artifactId>
14+
<version>2.0.3.RELEASE</version>
15+
</parent>
16+
17+
<properties>
18+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
19+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
20+
<java.version>1.8</java.version>
21+
<mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version>
22+
<mybatisplus.version>2.2.0</mybatisplus.version>
23+
<mysql.version>5.1.38</mysql.version>
24+
<mssql.version>4.0</mssql.version>
25+
<oracle.version>11.2.0.3</oracle.version>
26+
<druid.version>1.1.10</druid.version>
27+
<commons.lang.version>2.6</commons.lang.version>
28+
<commons.fileupload.version>1.2.2</commons.fileupload.version>
29+
<commons.io.version>2.5</commons.io.version>
30+
<commons.codec.version>1.10</commons.codec.version>
31+
<commons.configuration.version>1.10</commons.configuration.version>
32+
<jwt.version>0.7.0</jwt.version>
33+
<swagger.version>2.7.0</swagger.version>
34+
<fastjson.version>1.2.47</fastjson.version>
35+
<hutool.version>4.1.1</hutool.version>
36+
<gson.version>2.8.2</gson.version>
37+
38+
</properties>
39+
40+
<dependencies>
41+
<dependency>
42+
<groupId>org.springframework.boot</groupId>
43+
<artifactId>spring-boot-starter-test</artifactId>
44+
<scope>test</scope>
45+
</dependency>
46+
<dependency>
47+
<groupId>org.springframework.boot</groupId>
48+
<artifactId>spring-boot-starter-web</artifactId>
49+
</dependency>
50+
<dependency>
51+
<groupId>org.springframework.boot</groupId>
52+
<artifactId>spring-boot-starter-aop</artifactId>
53+
</dependency>
54+
<dependency>
55+
<groupId>org.springframework</groupId>
56+
<artifactId>spring-context-support</artifactId>
57+
</dependency>
58+
<dependency>
59+
<groupId>org.springframework.boot</groupId>
60+
<artifactId>spring-boot-starter-data-redis</artifactId>
61+
</dependency>
62+
<dependency>
63+
<groupId>org.springframework.boot</groupId>
64+
<artifactId>spring-boot-configuration-processor</artifactId>
65+
<optional>true</optional>
66+
</dependency>
67+
<!--<dependency>-->
68+
<!--<groupId>org.springframework.boot</groupId>-->
69+
<!--<artifactId>spring-boot-devtools</artifactId>-->
70+
<!--<optional>true</optional>-->
71+
<!--</dependency>-->
72+
<!--<dependency>-->
73+
<!--<groupId>com.baomidou</groupId>-->
74+
<!--<artifactId>mybatisplus-spring-boot-starter</artifactId>-->
75+
<!--<version>${mybatisplus.spring.boot.version}</version>-->
76+
<!--</dependency>-->
77+
<!--<dependency>-->
78+
<!--<groupId>com.baomidou</groupId>-->
79+
<!--<artifactId>mybatis-plus</artifactId>-->
80+
<!--<version>${mybatisplus.version}</version>-->
81+
<!--</dependency>-->
82+
<!--<dependency>-->
83+
<!--<groupId>mysql</groupId>-->
84+
<!--<artifactId>mysql-connector-java</artifactId>-->
85+
<!--<version>${mysql.version}</version>-->
86+
<!--</dependency>-->
87+
<!--oracle驱动-->
88+
<!--<dependency>-->
89+
<!--<groupId>com.oracle</groupId>-->
90+
<!--<artifactId>ojdbc6</artifactId>-->
91+
<!--<version>${oracle.version}</version>-->
92+
<!--</dependency>-->
93+
<!--postgresql驱动-->
94+
<!--<dependency>-->
95+
<!--<groupId>org.postgresql</groupId>-->
96+
<!--<artifactId>postgresql</artifactId>-->
97+
<!--</dependency>-->
98+
<!--<dependency>-->
99+
<!--<groupId>com.alibaba</groupId>-->
100+
<!--<artifactId>druid-spring-boot-starter</artifactId>-->
101+
<!--<version>${druid.version}</version>-->
102+
<!--</dependency>-->
103+
<dependency>
104+
<groupId>commons-lang</groupId>
105+
<artifactId>commons-lang</artifactId>
106+
<version>${commons.lang.version}</version>
107+
</dependency>
108+
<dependency>
109+
<groupId>commons-io</groupId>
110+
<artifactId>commons-io</artifactId>
111+
<version>${commons.io.version}</version>
112+
</dependency>
113+
<dependency>
114+
<groupId>commons-codec</groupId>
115+
<artifactId>commons-codec</artifactId>
116+
<version>${commons.codec.version}</version>
117+
</dependency>
118+
<dependency>
119+
<groupId>commons-configuration</groupId>
120+
<artifactId>commons-configuration</artifactId>
121+
<version>${commons.configuration.version}</version>
122+
</dependency>
123+
<dependency>
124+
<groupId>io.jsonwebtoken</groupId>
125+
<artifactId>jjwt</artifactId>
126+
<version>${jwt.version}</version>
127+
</dependency>
128+
<dependency>
129+
<groupId>io.springfox</groupId>
130+
<artifactId>springfox-swagger2</artifactId>
131+
<version>${swagger.version}</version>
132+
</dependency>
133+
<dependency>
134+
<groupId>io.springfox</groupId>
135+
<artifactId>springfox-swagger-ui</artifactId>
136+
<version>${swagger.version}</version>
137+
</dependency>
138+
<dependency>
139+
<groupId>com.alibaba</groupId>
140+
<artifactId>fastjson</artifactId>
141+
<version>${fastjson.version}</version>
142+
</dependency>
143+
<dependency>
144+
<groupId>cn.hutool</groupId>
145+
<artifactId>hutool-all</artifactId>
146+
<version>${hutool.version}</version>
147+
</dependency>
148+
<dependency>
149+
<groupId>com.google.code.gson</groupId>
150+
<artifactId>gson</artifactId>
151+
<version>${gson.version}</version>
152+
</dependency>
153+
</dependencies>
154+
155+
<build>
156+
<finalName>${project.artifactId}</finalName>
157+
<extensions>
158+
<extension>
159+
<groupId>org.apache.maven.wagon</groupId>
160+
<artifactId>wagon-ssh</artifactId>
161+
<version>2.8</version>
162+
</extension>
163+
</extensions>
164+
<plugins>
165+
<plugin>
166+
<groupId>org.springframework.boot</groupId>
167+
<artifactId>spring-boot-maven-plugin</artifactId>
168+
<configuration>
169+
<fork>true</fork>
170+
</configuration>
171+
</plugin>
172+
<!-- 跳过单元测试 -->
173+
<plugin>
174+
<groupId>org.apache.maven.plugins</groupId>
175+
<artifactId>maven-surefire-plugin</artifactId>
176+
<configuration>
177+
<skipTests>true</skipTests>
178+
</configuration>
179+
</plugin>
180+
</plugins>
181+
</build>
182+
183+
<repositories>
184+
<repository>
185+
<id>public</id>
186+
<name>aliyun nexus</name>
187+
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
188+
<releases>
189+
<enabled>true</enabled>
190+
</releases>
191+
</repository>
192+
</repositories>
193+
<pluginRepositories>
194+
<pluginRepository>
195+
<id>public</id>
196+
<name>aliyun nexus</name>
197+
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
198+
<releases>
199+
<enabled>true</enabled>
200+
</releases>
201+
<snapshots>
202+
<enabled>false</enabled>
203+
</snapshots>
204+
</pluginRepository>
205+
</pluginRepositories>
206+
207+
</project>

sql/init-mysql.sql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-- 系统日志
2+
CREATE TABLE `sys_log` (
3+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
4+
`username` varchar(50) COMMENT '用户名',
5+
`operation` varchar(50) COMMENT '用户操作',
6+
`method` varchar(200) COMMENT '请求方法',
7+
`url` varchar(200) COMMENT '请求URL',
8+
`params` varchar(5000) COMMENT '请求参数',
9+
`time` bigint NOT NULL COMMENT '执行时长(毫秒)',
10+
`ip` varchar(64) COMMENT 'IP地址',
11+
`create_date` datetime COMMENT '创建时间',
12+
PRIMARY KEY (`id`)
13+
) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8 COMMENT='系统日志';
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.monkey01;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
* @author: feiweiwei
8+
* @description:
9+
* @created Date: 14:52 18/9/3.
10+
* @modify by:
11+
*/
12+
@SpringBootApplication
13+
public class MkApplication {
14+
public static void main(String[] args) {
15+
SpringApplication.run(MkApplication.class, args);
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.monkey01.common.annotation;
2+
3+
import java.lang.annotation.*;
4+
5+
/**
6+
* @author: feiweiwei
7+
* @description: 日志切面注解
8+
* @created Date: 13:25 18/9/3.
9+
* @modify by:
10+
*/
11+
@Target(ElementType.METHOD)
12+
@Retention(RetentionPolicy.RUNTIME)
13+
@Documented
14+
public @interface SysLog {
15+
16+
String value() default "";
17+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package com.monkey01.common.aspect;
2+
3+
import com.google.gson.Gson;
4+
import com.monkey01.common.annotation.SysLog;
5+
import com.monkey01.common.domain.SysLogDO;
6+
import com.monkey01.common.service.SysLogService;
7+
import com.monkey01.common.utils.HttpContextUtils;
8+
import com.monkey01.common.utils.IPUtils;
9+
import org.aspectj.lang.ProceedingJoinPoint;
10+
import org.aspectj.lang.annotation.Around;
11+
import org.aspectj.lang.annotation.Aspect;
12+
import org.aspectj.lang.annotation.Pointcut;
13+
import org.aspectj.lang.reflect.MethodSignature;
14+
import org.springframework.beans.factory.annotation.Autowired;
15+
import org.springframework.stereotype.Component;
16+
17+
import javax.servlet.http.HttpServletRequest;
18+
import java.lang.reflect.Method;
19+
import java.util.Date;
20+
21+
/**
22+
* @author: feiweiwei
23+
* @description: 系统日志切面处理类,主要负责处理@SysLog注解拦截的信息
24+
* @created Date: 13:26 18/9/3.
25+
* @modify by:
26+
*/
27+
@Aspect
28+
@Component
29+
public class SysLogAspect {
30+
@Autowired
31+
private SysLogService sysLogService;
32+
33+
@Pointcut("@annotation(com.monkey01.common.annotation.SysLog)")
34+
public void logPointCut() {
35+
36+
}
37+
38+
@Around("logPointCut()")
39+
public Object around(ProceedingJoinPoint point) throws Throwable {
40+
long beginTime = System.currentTimeMillis();
41+
//执行方法
42+
Object result = point.proceed();
43+
//执行时长(毫秒)
44+
long time = System.currentTimeMillis() - beginTime;
45+
46+
//保存日志
47+
saveSysLog(point, time);
48+
49+
return result;
50+
}
51+
52+
private void saveSysLog(ProceedingJoinPoint joinPoint, long time) {
53+
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
54+
Method method = signature.getMethod();
55+
56+
SysLogDO sysLog = new SysLogDO();
57+
SysLog syslog = method.getAnnotation(SysLog.class);
58+
if(syslog != null){
59+
//注解上的描述
60+
sysLog.setOperation(syslog.value());
61+
}
62+
63+
//请求的方法名
64+
String className = joinPoint.getTarget().getClass().getName();
65+
String methodName = signature.getName();
66+
sysLog.setMethod(className + "." + methodName + "()");
67+
68+
//请求的参数
69+
Object[] args = joinPoint.getArgs();
70+
try{
71+
String params = new Gson().toJson(args[0]);
72+
sysLog.setParams(params);
73+
}catch (Exception e){
74+
75+
}
76+
77+
//获取request
78+
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
79+
//设置IP地址
80+
sysLog.setIp(IPUtils.getIpAddr(request));
81+
//设置请求URL
82+
sysLog.setUrl(request.getRequestURL().toString());
83+
84+
// //用户名
85+
// String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();
86+
// sysLog.setUsername(username);
87+
88+
sysLog.setTime(time);
89+
sysLog.setCreateDate(new Date());
90+
//保存系统日志
91+
// sysLogService.insert(sysLog);
92+
sysLogService.saveSysLog(sysLog);
93+
}
94+
}
95+

0 commit comments

Comments
 (0)