A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天到了Spring第3天,我们学习了动态代理和SpringAOP,请大家整理:
1 今天讲了几种的代理方式?简单说一说;
2 什么是SpringAOP?聊聊你对AOP的理解
3 注解下使用AOP该怎么做?

2 个回复

倒序浏览
今天到了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该怎么做?
回复 使用道具 举报
1 今天讲了几种的代理方式?简单说一说;
两种动态代理方式:
        作用:在不修改源码的情况下,对方法进行增强。
基于接口的动态代理方式:
        是由JDK官方提供的Proxy类来完成的。
        被代理的类要求:必须继承一个类。
基于子类的动态代理方式:
        是由第三方cglib库提供的Enhancer类完成的。
        被代理的对象要求:不能是最终类,即被final修饰的类。
2 什么是SpringAOP?聊聊你对AOP的理解
        aop面向切面编程,可以在不修改源码的基础上,完成对方法的增强。其底层原理是使用动态代理方式实现的。springAOP可以根据被代理对象是否实现接口,来决定使用哪种动态代理方式。

3 注解下使用AOP该怎么做?
        1.在通知类上使用@Asept注解声明为切面。
        2.在增强的方法上使用注解配置通知:@Before....等。
        3.在spring配置文件中开启spring对注解的支持:<aop:aspectj-autoproxy/>

黄成成
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马