今天到了Spring第3天,我们学习了动态代理和SpringAOP,请大家整理:
1 今天讲了几种的代理方式?简单说一说;基于接口的代理:
被代理的类必须要实现一个接口;
Proxy.newProxyInstance(被代理对象.getClass().getClassLoader,被代理对象.getClass().getInterface();new InvocationnalHandle()(被增强的))
基于子类的代理:
它是通过子类继承父类来实现代理,所以被代理的类不能是最终类;
Enhancer.create(被代理对象.getClass(),new MethodInterceptor(){intercept})
2 什么是SpringAOP?聊聊你对AOP的理解
先说oop核心思想是封装继承和多态。通过抽取重复代码,实现代码的复用,减少代码的重复编写。oop会建立起一种对象层次结构,这时就需要AOP出场了。
springAoP的实现原理是代理。AOP利用横切的技术,可以解剖封装的数据内部,将影响多各类的公共行为,可以降低程序间的耦合度,有利于未来的维护和操作。AOP把软件分成两部分:核心关注点和横切关注点,拿我们的转账案例来说,核心关注点就是业务层中的调用dao层方法的操作,而横切关注点则是事务相关的那些。横切关注点是和核心关注点没有关系不大的,它们的一个特点是经常发生在核心关注点的多处。比如为了登录功能,注册功能中都有多条SQL语句,它们需要保证事务一致性,就都需要使用到横切关注点。
常用到切面的有:权限认证、日志、事务处理。
3 注解下使用AOP该怎么做?
|