技术总结之SpringAOP

1)SpringAOP原理

SpringAOP基于代理模式实现。主要使用JDK中的动态代理和第三方依赖库cglib来实现,Spring优先选择JDK的动态代理,如果需要代理的类没有实现接口(或者无接口),则用cglib来完成代理功能。因为JDK的动态代理需要依赖接口(目前JDK6是这样的)。


2)SpringAOP事务控制简单模拟实现(JDK动态代理)

a)新建接口UserService

  1. public interface UserService {


  2.     public void addUser();

  3.     public void delUser();

  4. }



b)实现类UserServiceImp

  1. public class UserServiceImp implements UserService {


  2.     @Override

  3.     public void addUser() {

  4.         System.out.println("add user success!");

  5.     }


  6.     @Override

  7.     public void delUser() {

  8.         System.out.println("del user success!");

  9.     }


  10. }



c)代理实现ProxyService

wKiom1RrXtPQ6eZXAAH3vmpFJrA587.jpg


d)测试代码

  1. public static void main(String[] args) throws Exception {

  2.     ProxyService ps = new ProxyService();

  3.     UserService us = (UserService) ps.createTargetObj(new UserServiceImp());

  4.     us.addUser();

  5.     System.out.println("***************************");

  6.     us.delUser();

  7. }


e)测试结果

wKioL1RrYC_wd1spAAC5ZT8B1-c398.jpg

至此模拟实现完成。


3)SpringAOP声明式配置

其实使用SpringAOP是非常方便的,配置如下:

wKioL1RrYJWS5y_rAAG9xDHROH0022.jpg


你可能感兴趣的:(java,spring,AOP,proxy)