项目作者: AkaZver

项目描述 :
PoC of injecting AspectJ aspects into Spring Boot application through Java agent
高级语言: Java
项目地址: git://github.com/AkaZver/spring-aop-java-agent-inject.git
创建时间: 2021-07-04T14:53:13Z
项目社区:https://github.com/AkaZver/spring-aop-java-agent-inject

开源协议:Apache License 2.0

下载


Description

This project is the PoC of injecting AspectJ aspects into already built Spring Boot application through Java agent

How to run

Create demo application with Spring Initializr

Build this project and modify starting script of your Spring Boot application like that:

  1. #!/usr/bin/env bash
  2. java -javaagent:aspectjweaver-1.9.7.jar \
  3. -javaagent:spring-aop-java-agent-inject-1.0.0.jar \
  4. -jar demo-1.0.0.jar

You should see aspect execution in the log just before main() method:

  1. [AppClassLoader@2437c6dc] info AspectJ Weaver Version 1.9.7 built on Thursday Jun 24, 2021 at 16:14:45 PDT
  2. [AppClassLoader@2437c6dc] info register classloader jdk.internal.loader.ClassLoaders$AppClassLoader@2437c6dc
  3. [AppClassLoader@2437c6dc] info using configuration file:/C:/Workspace/spring-aop-java-agent-inject-1.0.0.jar!/META-INF/aop.xml
  4. [AppClassLoader@2437c6dc] info register aspect com.github.akazver.poc.SpringBootInterceptAspect
  5. Jul 04, 2021 5:49:27 PM com.github.akazver.poc.SpringAopJavaAgent premain
  6. INFO: Content of aop.xml:
  7. <aspectj>
  8. <aspects>
  9. <aspect name="com.github.akazver.poc.SpringBootInterceptAspect"></aspect>
  10. </aspects>
  11. <weaver options="-verbose -nowarn"></weaver>
  12. </aspectj>
  13. [LaunchedURLClassLoader@610f7aa] info AspectJ Weaver Version 1.9.7 built on Thursday Jun 24, 2021 at 16:14:45 PDT
  14. [LaunchedURLClassLoader@610f7aa] info register classloader org.springframework.boot.loader.LaunchedURLClassLoader@610f7aa
  15. [LaunchedURLClassLoader@610f7aa] info using configuration file:/C:/Workspace/spring-aop-java-agent-inject-1.0.0.jar!/META-INF/aop.xml
  16. [LaunchedURLClassLoader@610f7aa] info register aspect com.github.akazver.poc.SpringBootInterceptAspect
  17. Jul 04, 2021 5:49:27 PM com.github.akazver.poc.SpringBootInterceptAspect execute
  18. INFO: Hello from AspectJ
  19. . ____ _ __ _ _
  20. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
  21. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  22. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  23. ' |____| .__|_| |_|_| |_\__, | / / / /
  24. =========|_|==============|___/=/_/_/_/
  25. :: Spring Boot :: (v2.5.2)
  26. 2021-07-04 17:49:27.990 INFO 24572 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 11.0.9 on DESKTOP-VOL3PG3 with PID 24572 (C:\Workspace\demo-1.0.0.jar started by aka_zver in C:\Workspace)
  27. 2021-07-04 17:49:27.993 INFO 24572 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
  28. 2021-07-04 17:49:28.518 INFO 24572 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 0.984 seconds (JVM running for 1.667)