diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..42bc9ef727b3a58be35dff643b626f83e708e65e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,34 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+!**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..85f202d66920042174c71235f964bb80406b7aed
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,54 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.6.RELEASE
+
+
+ com.lius
+ SpringAopDemo
+ 0.0.1-SNAPSHOT
+ SpringAopDemo
+ Demo project for Spring Boot
+
+ 8
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/lius/springaopdemo/SpringAopDemoApplication.java b/src/main/java/com/lius/springaopdemo/SpringAopDemoApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7394971205fa4c4f48d773361d6534e08d703fd
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/SpringAopDemoApplication.java
@@ -0,0 +1,13 @@
+package com.lius.springaopdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringAopDemoApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringAopDemoApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/lius/springaopdemo/common/ResultMap.java b/src/main/java/com/lius/springaopdemo/common/ResultMap.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a7ac75aeab7f7d048e5914ff283e271e8f14169
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/common/ResultMap.java
@@ -0,0 +1,20 @@
+package com.lius.springaopdemo.common;
+
+
+public class ResultMap {
+
+ private String code;
+ private String message;
+ private Object data;
+
+ public ResultMap(String code, String message, Object data) {
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ }
+
+ public ResultMap(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+}
diff --git a/src/main/java/com/lius/springaopdemo/controller/LoginController.java b/src/main/java/com/lius/springaopdemo/controller/LoginController.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c4b00caebe1cea5e6e8fbeceb19fd4ec9d8942b
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/controller/LoginController.java
@@ -0,0 +1,45 @@
+package com.lius.springaopdemo.controller;
+
+import com.lius.springaopdemo.common.ResultMap;
+import com.lius.springaopdemo.ex.ServiceException;
+import com.lius.springaopdemo.ex.UserNotExtException;
+import com.lius.springaopdemo.model.User;
+import com.lius.springaopdemo.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author liusong
+ */
+@Slf4j
+@Controller
+@RequestMapping("/user")
+public class LoginController {
+
+ @Autowired
+ private UserService userService;
+
+ private final Integer BORROW_AMOUNT_NULL_ERROR = 1;
+
+ @PostMapping("/login")
+ public ResultMap login(String username, String password){
+ log.info("username:{}, password:{}", username, password);
+ if(username.isEmpty()||password.isEmpty()){
+
+ }
+ User user = new User();
+ throw new UserNotExtException();
+
+// try {
+// user = userService.login(username, password);
+// } catch (UserNotExtException e){
+// return new ResultMap("01", e.getMessage());
+// } catch (Exception e){
+// e.printStackTrace();
+// }
+// return new ResultMap("00", "成功", user);
+ }
+}
diff --git a/src/main/java/com/lius/springaopdemo/ex/GlobalExceptionHandler.java b/src/main/java/com/lius/springaopdemo/ex/GlobalExceptionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d1726b10a0607935ec4b5e87e78931cb769c4e6
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/ex/GlobalExceptionHandler.java
@@ -0,0 +1,33 @@
+package com.lius.springaopdemo.ex;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@Slf4j
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler
+ public String handleServiceException(ServiceException e){
+ return e.getMessage();
+ }
+
+ @ExceptionHandler
+ public String handleServiceNullPointerException(NullPointerException e){
+ log.info("出现了空指针异常,已经处理了");
+ return e.getMessage();
+ }
+
+ @ExceptionHandler
+ public String handleServiceRuntimeException(RuntimeException e){
+ log.info("出现了运行时异常,已经处理了");
+ return e.getMessage();
+ }
+
+ @ExceptionHandler(value = UserNotExtException.class)
+ public String handleServiceUserNotExtException(UserNotExtException e){
+ log.info("出现了用户不存在异常,已经处理了");
+ return "出现了用户不存在异常";
+ }
+}
diff --git a/src/main/java/com/lius/springaopdemo/ex/ServiceException.java b/src/main/java/com/lius/springaopdemo/ex/ServiceException.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a06ae828a0b42bfd73989f7faa30cc8852e39ba
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/ex/ServiceException.java
@@ -0,0 +1,4 @@
+package com.lius.springaopdemo.ex;
+
+public class ServiceException extends RuntimeException{
+}
diff --git a/src/main/java/com/lius/springaopdemo/ex/UserNotExtException.java b/src/main/java/com/lius/springaopdemo/ex/UserNotExtException.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a0167ac98ecd40d6dc5a2ff1783fdf5233fce9b
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/ex/UserNotExtException.java
@@ -0,0 +1,17 @@
+package com.lius.springaopdemo.ex;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author liusong
+ */
+@Data
+@NoArgsConstructor
+public class UserNotExtException extends RuntimeException{
+
+ private Integer code;
+ private String message;
+
+
+}
diff --git a/src/main/java/com/lius/springaopdemo/model/User.java b/src/main/java/com/lius/springaopdemo/model/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..33252d61d2650a009608dcc868dbb0071fc826ed
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/model/User.java
@@ -0,0 +1,17 @@
+package com.lius.springaopdemo.model;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class User implements Serializable {
+
+ private Long id;
+ private String username;
+ private String password;
+ private String userImgUrl;
+ private Integer age;
+ private String phone;
+
+}
diff --git a/src/main/java/com/lius/springaopdemo/service/UserService.java b/src/main/java/com/lius/springaopdemo/service/UserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..90ae980fbdef351bc6e271ab243e20943a3b115f
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/service/UserService.java
@@ -0,0 +1,8 @@
+package com.lius.springaopdemo.service;
+
+import com.lius.springaopdemo.model.User;
+
+public interface UserService {
+
+ User login(String username, String password) throws Exception;
+}
diff --git a/src/main/java/com/lius/springaopdemo/service/impl/UserServiceImpl.java b/src/main/java/com/lius/springaopdemo/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1072bd2cca75fc02c2556d3f16f1424310cad7a5
--- /dev/null
+++ b/src/main/java/com/lius/springaopdemo/service/impl/UserServiceImpl.java
@@ -0,0 +1,15 @@
+package com.lius.springaopdemo.service.impl;
+
+import com.lius.springaopdemo.ex.UserNotExtException;
+import com.lius.springaopdemo.model.User;
+import com.lius.springaopdemo.service.UserService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserServiceImpl implements UserService {
+ @Override
+ public User login(String username, String password) {
+ throw new UserNotExtException();
+// return null;
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1 @@
+
diff --git a/src/test/java/com/lius/springaopdemo/SpringAopDemoApplicationTests.java b/src/test/java/com/lius/springaopdemo/SpringAopDemoApplicationTests.java
new file mode 100644
index 0000000000000000000000000000000000000000..cda4042b8c376967349836e70a0fff74f505d4f0
--- /dev/null
+++ b/src/test/java/com/lius/springaopdemo/SpringAopDemoApplicationTests.java
@@ -0,0 +1,13 @@
+package com.lius.springaopdemo;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class SpringAopDemoApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
diff --git a/target/SpringAopDemo-0.0.1-SNAPSHOT.jar b/target/SpringAopDemo-0.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000000000000000000000000000000000000..c379b521ffbcc736c9dabffe6012e3375adb3f4a
Binary files /dev/null and b/target/SpringAopDemo-0.0.1-SNAPSHOT.jar differ
diff --git a/target/SpringAopDemo-0.0.1-SNAPSHOT.jar.original b/target/SpringAopDemo-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 0000000000000000000000000000000000000000..a993bba8384f1e2f13a8d2a51431c7566dd99dff
Binary files /dev/null and b/target/SpringAopDemo-0.0.1-SNAPSHOT.jar.original differ
diff --git a/target/classes/application.properties b/target/classes/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/target/classes/application.properties
@@ -0,0 +1 @@
+
diff --git a/target/classes/com/lius/springaopdemo/SpringAopDemoApplication.class b/target/classes/com/lius/springaopdemo/SpringAopDemoApplication.class
new file mode 100644
index 0000000000000000000000000000000000000000..bf4aacc4feb50e23f488dd206c48b05917abd8db
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/SpringAopDemoApplication.class differ
diff --git a/target/classes/com/lius/springaopdemo/common/ResultMap.class b/target/classes/com/lius/springaopdemo/common/ResultMap.class
new file mode 100644
index 0000000000000000000000000000000000000000..f448bbe6d21e3bb6b66d05ac0ba27722e079d864
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/common/ResultMap.class differ
diff --git a/target/classes/com/lius/springaopdemo/controller/LoginController.class b/target/classes/com/lius/springaopdemo/controller/LoginController.class
new file mode 100644
index 0000000000000000000000000000000000000000..ecdc7cd5a365b7232d8b84ddcba3cbcd8417ad8f
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/controller/LoginController.class differ
diff --git a/target/classes/com/lius/springaopdemo/ex/GlobalExceptionHandler.class b/target/classes/com/lius/springaopdemo/ex/GlobalExceptionHandler.class
new file mode 100644
index 0000000000000000000000000000000000000000..8a0d269767626dd9f7670e1e525ea19826c88568
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/ex/GlobalExceptionHandler.class differ
diff --git a/target/classes/com/lius/springaopdemo/ex/ServiceException.class b/target/classes/com/lius/springaopdemo/ex/ServiceException.class
new file mode 100644
index 0000000000000000000000000000000000000000..b7eb72bac166d581cd7772c21483680f85a4caa6
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/ex/ServiceException.class differ
diff --git a/target/classes/com/lius/springaopdemo/ex/UserNotExtException.class b/target/classes/com/lius/springaopdemo/ex/UserNotExtException.class
new file mode 100644
index 0000000000000000000000000000000000000000..b16cb3179950907d51936f8d27e18564540c7536
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/ex/UserNotExtException.class differ
diff --git a/target/classes/com/lius/springaopdemo/model/User.class b/target/classes/com/lius/springaopdemo/model/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..62726dfb9acb89cbd41796804c08707cc6962d18
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/model/User.class differ
diff --git a/target/classes/com/lius/springaopdemo/service/UserService.class b/target/classes/com/lius/springaopdemo/service/UserService.class
new file mode 100644
index 0000000000000000000000000000000000000000..639992411a13fd59a7054450e3d0f51bf024a23f
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/service/UserService.class differ
diff --git a/target/classes/com/lius/springaopdemo/service/impl/UserServiceImpl.class b/target/classes/com/lius/springaopdemo/service/impl/UserServiceImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..29d82fa299975de025f7969b9895cc770760febd
Binary files /dev/null and b/target/classes/com/lius/springaopdemo/service/impl/UserServiceImpl.class differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000000000000000000000000000000000000..fca9712fc303488f663fc2f1a745d8b98ff6dfc4
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+version=0.0.1-SNAPSHOT
+groupId=com.lius
+artifactId=SpringAopDemo
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..f40b9f770fd2de29db410ccbf8945c9ddaabdeb4
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,9 @@
+com/lius/springaopdemo/ex/UserNotExtException.class
+com/lius/springaopdemo/ex/GlobalExceptionHandler.class
+com/lius/springaopdemo/ex/ServiceException.class
+com/lius/springaopdemo/controller/LoginController.class
+com/lius/springaopdemo/model/User.class
+com/lius/springaopdemo/SpringAopDemoApplication.class
+com/lius/springaopdemo/service/impl/UserServiceImpl.class
+com/lius/springaopdemo/common/ResultMap.class
+com/lius/springaopdemo/service/UserService.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..c7f38e97ca9a85ff80a3aaedca288c7ed3565d28
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,9 @@
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/ex/ServiceException.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/service/UserService.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/ex/GlobalExceptionHandler.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/controller/LoginController.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/SpringAopDemoApplication.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/model/User.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/common/ResultMap.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/ex/UserNotExtException.java
+/Users/liusong/demoProjects/SpringAopDemo/src/main/java/com/lius/springaopdemo/service/impl/UserServiceImpl.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..c16e69eb750b113e1edb9e55e174b7c1bf485415
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+com/lius/springaopdemo/SpringAopDemoApplicationTests.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..f1f89c352211a29fac129b1fdd07da30754852d8
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+/Users/liusong/demoProjects/SpringAopDemo/src/test/java/com/lius/springaopdemo/SpringAopDemoApplicationTests.java
diff --git a/target/surefire-reports/TEST-com.lius.springaopdemo.SpringAopDemoApplicationTests.xml b/target/surefire-reports/TEST-com.lius.springaopdemo.SpringAopDemoApplicationTests.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3138a4761abcdb8275d11afa332bfa0bdc4e42ad
--- /dev/null
+++ b/target/surefire-reports/TEST-com.lius.springaopdemo.SpringAopDemoApplicationTests.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/com.lius.springaopdemo.SpringAopDemoApplicationTests.txt b/target/surefire-reports/com.lius.springaopdemo.SpringAopDemoApplicationTests.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c298ef3101a976bcfc7c06be7a7189c1b1def67
--- /dev/null
+++ b/target/surefire-reports/com.lius.springaopdemo.SpringAopDemoApplicationTests.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.lius.springaopdemo.SpringAopDemoApplicationTests
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.276 s - in com.lius.springaopdemo.SpringAopDemoApplicationTests
diff --git a/target/test-classes/com/lius/springaopdemo/SpringAopDemoApplicationTests.class b/target/test-classes/com/lius/springaopdemo/SpringAopDemoApplicationTests.class
new file mode 100644
index 0000000000000000000000000000000000000000..fdecf818078f56d79b80c1b31ba15ecca01d6764
Binary files /dev/null and b/target/test-classes/com/lius/springaopdemo/SpringAopDemoApplicationTests.class differ