黑马程序员技术交流社区

标题: 【厦门校区JavaEE就业5期-每日总结】Spring_day03 [打印本页]

作者: 厦门校区    时间: 2019-3-18 18:55
标题: 【厦门校区JavaEE就业5期-每日总结】Spring_day03
今天到了Spring第3天,我们学习了动态代理和SpringAOP,请大家整理:
1 今天讲了几种的代理方式?简单说一说;
2 什么是SpringAOP?聊聊你对AOP的理解
3 注解下使用AOP该怎么做?
作者: 洪烁铭    时间: 2019-3-18 22:39
今天到了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该怎么做?

作者: Java中的莫Q哇啦    时间: 2019-3-20 19:49
1 今天讲了几种的代理方式?简单说一说;
两种动态代理方式:
        作用:在不修改源码的情况下,对方法进行增强。
基于接口的动态代理方式:
        是由JDK官方提供的Proxy类来完成的。
        被代理的类要求:必须继承一个类。
基于子类的动态代理方式:
        是由第三方cglib库提供的Enhancer类完成的。
        被代理的对象要求:不能是最终类,即被final修饰的类。
2 什么是SpringAOP?聊聊你对AOP的理解
        aop面向切面编程,可以在不修改源码的基础上,完成对方法的增强。其底层原理是使用动态代理方式实现的。springAOP可以根据被代理对象是否实现接口,来决定使用哪种动态代理方式。

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

黄成成




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2