- <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>
- <groupId>com.benshou</groupId>
- <artifactId>CGLibDynamicProxy</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <!-- 配置 maven 插件 -->
- <build>
- <plugins>
- <!-- java 编译插件 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.2.2</version>
- </dependency>
- </dependencies>
- </project>
- package com.benshou;
- public class Laozong {
- public void chifan() {
- System.out.println("吃饭");
- }
- public void mubiao() {
- System.out.println("目标");
- }
- }
- package com.benshou;
- import java.lang.reflect.Method;
- import.NET.sf.cglib.proxy.MethodInterceptor;
- import.NET.sf.cglib.proxy.MethodProxy;
- public class Mishu implements MethodInterceptor{
- @Override
- public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3) throws Throwable {
- System.out.println("预约时间");
- //invoke() 调用子类重写的方法
- // arg1.invoke(arg0, arg2);
- // arg3.invokeSuper(arg0, arg2);
- Object result = arg3.invokeSuper(arg0, arg2);
- System.out.println("备注");
- return result;
- }
- }
- package com.benshou.CGLibDynamicProxy;
- import com.benshou.Laozong;
- import com.benshou.Mishu;
- import.NET.sf.cglib.proxy.Enhancer;
- public class App
- {
- public static void main( String[] args )
- {
- Enhancer enhancer = new Enhancer();
- enhancer.setSuperclass(Laozong.class);
- enhancer.setCallback(new Mishu());
- Laozong laozong = (Laozong) enhancer.create();
- laozong.chifan();
- }
- }
来源: http://www.bubuko.com/infodetail-3683646.html