Skip to content

Commit 7d5a459

Browse files
author
bob
committed
init
1 parent 4dec3e6 commit 7d5a459

29 files changed

+975
-0
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
4+
### STS ###
5+
.apt_generated
6+
.classpath
7+
.factorypath
8+
.project
9+
.settings
10+
.springBeans
11+
12+
### IntelliJ IDEA ###
13+
.idea
14+
*.iws
15+
springboot-stu02-jpa/springboot-stu02-jpa.iml
16+
*.ipr
17+
18+
### NetBeans ###
19+
nbproject/private/
20+
build/
21+
nbbuild/
22+
dist/
23+
nbdist/
24+
.nb-gradle/

pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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.bob.stu</groupId>
8+
<artifactId>springboot-stu</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
12+
<modules>
13+
<module>springboot-stu01-helloworld</module>
14+
</modules>
15+
</project>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
4+
### STS ###
5+
.apt_generated
6+
.classpath
7+
.factorypath
8+
.project
9+
.settings
10+
.springBeans
11+
12+
### IntelliJ IDEA ###
13+
.idea
14+
*.iws
15+
*.iml
16+
*.ipr
17+
18+
### NetBeans ###
19+
nbproject/private/
20+
build/
21+
nbbuild/
22+
dist/
23+
nbdist/
24+
.nb-gradle/

springboot-stu01-helloworld/ReadMe.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
### SpringBoot基础
2+
3+
### SpringBoot进阶
4+
5+
> 1.@Valid表单校验
6+
> 2.AOP统一处理请求日志
7+
> 3.统一异常处理

springboot-stu01-helloworld/pom.xml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.bob.stu</groupId>
7+
<artifactId>springboot-stu01-helloworld</artifactId>
8+
<version>0.0.1-SNAPSHOT</version>
9+
<packaging>jar</packaging>
10+
11+
<name>springboot-stu01-helloworld</name>
12+
<description>Demo project for Spring Boot</description>
13+
14+
<parent>
15+
<groupId>org.springframework.boot</groupId>
16+
<artifactId>spring-boot-starter-parent</artifactId>
17+
<version>1.5.3.RELEASE</version>
18+
<relativePath/> <!-- lookup parent from repository -->
19+
</parent>
20+
21+
<properties>
22+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24+
<java.version>1.8</java.version>
25+
</properties>
26+
27+
<dependencies>
28+
<dependency>
29+
<groupId>org.springframework.boot</groupId>
30+
<artifactId>spring-boot-starter-web</artifactId>
31+
</dependency>
32+
33+
<dependency>
34+
<groupId>org.springframework.boot</groupId>
35+
<artifactId>spring-boot-starter-test</artifactId>
36+
<scope>test</scope>
37+
</dependency>
38+
39+
<!--jpa-->
40+
<dependency>
41+
<groupId>org.springframework.boot</groupId>
42+
<artifactId>spring-boot-starter-data-jpa</artifactId>
43+
</dependency>
44+
45+
<!--mysql数据库驱动-->
46+
<dependency>
47+
<groupId>mysql</groupId>
48+
<artifactId>mysql-connector-java</artifactId>
49+
</dependency>
50+
51+
<!--aop-->
52+
<dependency>
53+
<groupId>org.springframework.boot</groupId>
54+
<artifactId>spring-boot-starter-aop</artifactId>
55+
</dependency>
56+
57+
</dependencies>
58+
59+
<build>
60+
<plugins>
61+
<plugin>
62+
<groupId>org.springframework.boot</groupId>
63+
<artifactId>spring-boot-maven-plugin</artifactId>
64+
</plugin>
65+
</plugins>
66+
</build>
67+
68+
69+
</project>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.bob.stu;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
* Spring Boot 应用启动类
8+
*
9+
* @author bob
10+
* @since 2017年05月14日13:08:35
11+
*/
12+
@SpringBootApplication
13+
public class Application {
14+
15+
public static void main(String[] args) {
16+
// 程序启动入口
17+
// 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
18+
SpringApplication.run(Application.class, args);
19+
}
20+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.bob.stu.aspect;
2+
3+
import org.aspectj.lang.JoinPoint;
4+
import org.aspectj.lang.annotation.*;
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
import org.springframework.stereotype.Component;
8+
import org.springframework.web.context.request.RequestContextHolder;
9+
import org.springframework.web.context.request.ServletRequestAttributes;
10+
11+
import javax.servlet.http.HttpServletRequest;
12+
13+
/**
14+
* http请求日志切面
15+
*
16+
* @author bob <bobyang_coder@163.com>
17+
* @since 2017/5/14
18+
*/
19+
@Aspect() //切面注解
20+
@Component
21+
public class HttpRequestAspect {
22+
private static final Logger logger = LoggerFactory.getLogger(HttpRequestAspect.class);
23+
ThreadLocal<Long> startTime = new ThreadLocal<>();
24+
25+
/**
26+
* 定义切入点
27+
*/
28+
@Pointcut("execution(public * com.bob.stu.controller.*.*(..)))")
29+
public void logging() {
30+
}
31+
32+
/**
33+
* 在方法之前打印日志
34+
* 日志内容:1.访问的url;2.访问的method;3.访问者ip;4.请求参数
35+
*/
36+
@Before("logging()")
37+
public void doBefore(JoinPoint joinPoint) {
38+
logger.info("----------loggingBefore----------------");
39+
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
40+
HttpServletRequest request = requestAttributes.getRequest();
41+
logger.info("url={}", request.getRequestURL());
42+
logger.info("http_method={}", request.getMethod());
43+
logger.info("visitor_ip={}", request.getRemoteAddr());
44+
logger.info("class_method={}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName());
45+
logger.info("method_args={}", joinPoint.getArgs());
46+
startTime.set(System.currentTimeMillis());//设置开始时间
47+
}
48+
49+
/**
50+
* 在方法之后打印日志
51+
*/
52+
@After("logging()")
53+
public void doAfter() {
54+
logger.info("----------loggingAfter----------------");
55+
}
56+
57+
@AfterReturning(returning = "object", pointcut = "logging()")
58+
public void doAfterReturning(Object object) {
59+
logger.info("response={}", object.toString());
60+
logger.info("spend time : {} ", System.currentTimeMillis() - startTime.get());//计算程序执行时间
61+
}
62+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package com.bob.stu.controller;
2+
3+
import com.bob.stu.dao.GirlDao;
4+
import com.bob.stu.domain.Girl;
5+
import com.bob.stu.domain.Result;
6+
import com.bob.stu.service.GirlService;
7+
import com.bob.stu.utils.ResultUtils;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.validation.BindingResult;
12+
import org.springframework.web.bind.annotation.*;
13+
14+
import javax.validation.Valid;
15+
import java.util.List;
16+
17+
/**
18+
* 在GirlController的基础上进行增强
19+
* <p>
20+
* 1.加入表单校验
21+
*
22+
* @author bob <bobyang_coder@163.com>
23+
* @since 2017/5/14
24+
*/
25+
@RestController
26+
@RequestMapping("girl2")
27+
public class Girl2Controller {
28+
private static final Logger logger = LoggerFactory.getLogger(Girl2Controller.class);
29+
30+
@Autowired
31+
private GirlDao girlDao;
32+
@Autowired
33+
private GirlService girlService;
34+
35+
@GetMapping("list")
36+
public List<Girl> list() {
37+
logger.info("==========method:list========");
38+
return girlDao.findAll();
39+
}
40+
41+
/**
42+
* 添加
43+
*
44+
* @return
45+
*/
46+
@PostMapping("add")
47+
public Result add(@Valid Girl girl, BindingResult bindingResult) {
48+
logger.info("==========method:add========");
49+
if (bindingResult.hasErrors()) {
50+
return null;
51+
// return ResultUtils.error(1, bindingResult.getFieldError().getDefaultMessage());
52+
}
53+
return ResultUtils.success(girlDao.save(girl));
54+
}
55+
56+
/**
57+
* 查询某个
58+
*
59+
* @param id
60+
* @return
61+
*/
62+
@GetMapping(value = "{id}")
63+
public Girl get(@PathVariable("id") Integer id) {
64+
logger.info("==========method:get========");
65+
return girlDao.findOne(id);
66+
}
67+
68+
69+
/**
70+
* 更新某个
71+
*
72+
* @param id
73+
* @param name
74+
* @param age
75+
* @return
76+
*/
77+
@PutMapping(value = "{id}")
78+
public Girl update(@PathVariable(value = "id") Integer id,
79+
@RequestParam(value = "name") String name,
80+
@RequestParam(value = "age") Integer age) {
81+
Girl girl = new Girl();
82+
girl.setId(id);
83+
girl.setAge(age);
84+
girl.setName(name);
85+
return girlDao.save(girl);
86+
}
87+
88+
/**
89+
* 删除某个
90+
*
91+
* @param id
92+
*/
93+
@DeleteMapping("{id}")
94+
public void del(@PathVariable(value = "id") Integer id) {
95+
girlDao.delete(id);
96+
}
97+
98+
@GetMapping("find/age/{age}")
99+
public List<Girl> findByAge(@PathVariable("age") Integer age) {
100+
return girlDao.findByAge(age);
101+
}
102+
103+
@GetMapping("check/age/{id}")
104+
public void checkAge(@PathVariable("id") Integer id) {
105+
girlService.checkAge(id);
106+
}
107+
}

0 commit comments

Comments
 (0)