更新案例

This commit is contained in:
2022-08-28 11:43:13 +08:00
parent 648ebe5708
commit 756c4f7381
14 changed files with 346 additions and 1 deletions

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.x47.blog</groupId>
<artifactId>LoadTimeWeaving-demo</artifactId>
<version>1.0</version>
</parent>
<artifactId>java-aspectj-agent</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,19 @@
package cn.x47.ltw;
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
/**
* @author xuwei
*/
public final class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>(1);
map.put("key", "ssss");
JSON.toJSONString(map);
}
}

View File

@ -0,0 +1,26 @@
package cn.x47.ltw;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
/**
* @author xuwei
*/
@Aspect
public class ProfilingAspect {
@Pointcut("execution(public * com.alibaba.fastjson.JSON.toJSONString(java.lang.Object))")
public void p2() {
}
@Around("p2()")
public Object profile2(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("A2");
Object proceed = pjp.proceed();
System.out.println(proceed);
System.out.println("q2");
return proceed;
}
}

View File

@ -0,0 +1,15 @@
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "https://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver>
<!-- only weave classes in our application-specific packages -->
<include within="cn.x47.ltw..*"/>
<include within="com.alibaba.fastjson.*"/>
</weaver>
<aspects>
<!-- weave in just this aspect -->
<aspect name="cn.x47.ltw.ProfilingAspect"/>
</aspects>
</aspectj>