diff --git a/demo2/java9-example/pom.xml b/demo2/java9-example/pom.xml index 220cf1b..65b5511 100644 --- a/demo2/java9-example/pom.xml +++ b/demo2/java9-example/pom.xml @@ -15,6 +15,15 @@ UTF-8 + + + org.junit.jupiter + junit-jupiter-api + 5.9.2 + test + + + diff --git a/demo2/java9-example/src/main/java/top/yexuejc/demo/StackWalkerDemo.java b/demo2/java9-example/src/main/java/top/yexuejc/demo/StackWalkerDemo.java index d8c39ba..a1096e8 100644 --- a/demo2/java9-example/src/main/java/top/yexuejc/demo/StackWalkerDemo.java +++ b/demo2/java9-example/src/main/java/top/yexuejc/demo/StackWalkerDemo.java @@ -1,6 +1,7 @@ package top.yexuejc.demo; import java.lang.StackWalker; +import java.util.stream.Collectors; public class StackWalkerDemo { public static void main(String[] args) { @@ -22,11 +23,17 @@ public class StackWalkerDemo { .walk(stackFrameStream -> stackFrameStream .filter(frame -> frame.getClassName().contains("StackWalkerDemo")) - .peek(frame -> System.out.println(frame.getClassName() + "." + frame.getMethodName())) - ); + .map(frame -> frame.getClassName() + "." + frame.getMethodName()) + .collect(Collectors.toList()) + ).forEach(System.out::println); System.out.println("\n=== 调用者信息 ==="); // 获取直接调用者信息 - StackWalker.getInstance().walk(stackStream -> stackStream.skip(1).findFirst()).ifPresent(caller -> System.out.println("调用者: " + caller.getClassName() + "." + caller.getMethodName())); + StackWalker.getInstance() + .walk(stackStream -> + stackStream.skip(1).findFirst() + ).ifPresent(caller -> + System.out.println("调用者: " + caller.getClassName() + "." + caller.getMethodName()) + ); } } diff --git a/demo2/java9-example/src/test/java/top/yexuejc/demo/StackWalkerDemoTest.java b/demo2/java9-example/src/test/java/top/yexuejc/demo/StackWalkerDemoTest.java new file mode 100644 index 0000000..acaa69f --- /dev/null +++ b/demo2/java9-example/src/test/java/top/yexuejc/demo/StackWalkerDemoTest.java @@ -0,0 +1,16 @@ +package top.yexuejc.demo; + + +import org.junit.jupiter.api.Test; + +/** + * @author maxiaofeng + * @date 2025/8/11 9:20 + */ +class StackWalkerDemoTest { + + @Test + void methodA() { + StackWalkerDemo.methodA(); + } +} \ No newline at end of file diff --git a/demo3/pom.xml b/demo3/pom.xml new file mode 100644 index 0000000..1306456 --- /dev/null +++ b/demo3/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.5.3 + + + top.yexuejc + demo3 + 0.0.1-SNAPSHOT + demo3 + demo3 + + + + + + + + + + + + + + + 21 + 21 + 21 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-validation + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + 1.18.30 + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + nz.net.ultraq.thymeleaf + thymeleaf-layout-dialect + + + + org.thymeleaf.extras + thymeleaf-extras-springsecurity6 + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-devtools + true + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + +