diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..da0415a --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 35827c3..8f6f5c3 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,11 @@ org.projectlombok lombok + + + org.springframework.boot + spring-boot-starter-aop + diff --git a/src/main/java/com/bwie/App.java b/src/main/java/com/bwie/App.java index 04ce79e..90955e3 100644 --- a/src/main/java/com/bwie/App.java +++ b/src/main/java/com/bwie/App.java @@ -2,8 +2,10 @@ package com.bwie; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.EnableAspectJAutoProxy; @SpringBootApplication +@EnableAspectJAutoProxy public class App { public static void main(String[] args) { diff --git a/src/main/java/com/bwie/aop/RepeatEnum.java b/src/main/java/com/bwie/aop/RepeatEnum.java new file mode 100644 index 0000000..85b06d1 --- /dev/null +++ b/src/main/java/com/bwie/aop/RepeatEnum.java @@ -0,0 +1,12 @@ +package com.bwie.aop; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface RepeatEnum { + +} diff --git a/src/main/java/com/bwie/aop/RepeatSubmit.java b/src/main/java/com/bwie/aop/RepeatSubmit.java new file mode 100644 index 0000000..e431e4b --- /dev/null +++ b/src/main/java/com/bwie/aop/RepeatSubmit.java @@ -0,0 +1,29 @@ +package com.bwie.aop; + +import lombok.extern.log4j.Log4j2; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +@Log4j2 +@Aspect +@Component +public class RepeatSubmit { + + private final ThreadLocal threadLocal=new ThreadLocal<>(); + + @Pointcut("@annotation(com.bwie.aop.RepeatEnum)") + private void pointcut(){} + + @Before("pointcut()") + public void bef(){ + log.info("切面 -前"); + } + + @After("pointcut()") + public void aft(){ + log.info("切面 -后"); + } +} diff --git a/src/main/java/com/bwie/controller/TestController.java b/src/main/java/com/bwie/controller/TestController.java index 3e659b9..ffd4b16 100644 --- a/src/main/java/com/bwie/controller/TestController.java +++ b/src/main/java/com/bwie/controller/TestController.java @@ -1,5 +1,6 @@ package com.bwie.controller; +import com.bwie.aop.RepeatEnum; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -20,6 +21,7 @@ public class TestController { private static final String apiTemplate="%s:%s:%s"; + @RepeatEnum @PostMapping public String post(@RequestHeader("token") String token, @RequestBody String str){ String format = String.format(apiTemplate, token, request.getRequestURI(), str); diff --git a/target/classes/com/bwie/App.class b/target/classes/com/bwie/App.class index 1296009..0291e2a 100644 Binary files a/target/classes/com/bwie/App.class and b/target/classes/com/bwie/App.class differ diff --git a/target/classes/com/bwie/aop/RepeatEnum.class b/target/classes/com/bwie/aop/RepeatEnum.class new file mode 100644 index 0000000..801dbfd Binary files /dev/null and b/target/classes/com/bwie/aop/RepeatEnum.class differ diff --git a/target/classes/com/bwie/aop/RepeatSubmit.class b/target/classes/com/bwie/aop/RepeatSubmit.class new file mode 100644 index 0000000..e07d78c Binary files /dev/null and b/target/classes/com/bwie/aop/RepeatSubmit.class differ diff --git a/target/classes/com/bwie/controller/TestController.class b/target/classes/com/bwie/controller/TestController.class index bfba7ce..118fb78 100644 Binary files a/target/classes/com/bwie/controller/TestController.class and b/target/classes/com/bwie/controller/TestController.class differ diff --git a/target/demo11-1.0-SNAPSHOT.jar b/target/demo11-1.0-SNAPSHOT.jar index aed0425..4057997 100644 Binary files a/target/demo11-1.0-SNAPSHOT.jar and b/target/demo11-1.0-SNAPSHOT.jar differ 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 index 51d8705..e0f8dfe 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,9 +1,11 @@ +com\bwie\aop\RepeatSubmit.class com\bwie\config\WebMvcConfig.class com\bwie\controller\LoginController.class com\bwie\domian\UserInfo.class com\bwie\Filter\TokenFilter.class com\bwie\controller\TestController.class com\bwie\domian\req\LoginReq.class +com\bwie\aop\RepeatEnum.class com\bwie\domian\UserInfo$UserInfoBuilder.class com\bwie\config\LoginUserMap.class com\bwie\App.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 index 3e0957d..0333393 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -2,6 +2,8 @@ D:\Project\demo11\src\main\java\com\bwie\config\LoginUserMap.java D:\Project\demo11\src\main\java\com\bwie\domian\req\LoginReq.java D:\Project\demo11\src\main\java\com\bwie\config\WebMvcConfig.java D:\Project\demo11\src\main\java\com\bwie\Filter\TokenFilter.java +D:\Project\demo11\src\main\java\com\bwie\aop\RepeatSubmit.java +D:\Project\demo11\src\main\java\com\bwie\aop\RepeatEnum.java D:\Project\demo11\src\main\java\com\bwie\domian\UserInfo.java D:\Project\demo11\src\main\java\com\bwie\controller\LoginController.java D:\Project\demo11\src\main\java\com\bwie\controller\TestController.java