JavaEE学习 day02

今天,我继续了JavaEE的学习。学习了AOP代理对象和增强处理、AOP切面、AOP日志示例、Spring注解实现自动注入。
总结一下一些需要注意的问题:
1.面向切面编程(AOP)
AOP的目标,是让我们可以“专心做事”。
AOP的原理:
将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决。
采用代理机制组装起来运行,在不改变原程序的基础上对代码段进行增强处理,增加新的功能。
JavaEE学习 day02
通过动态代理实现AOP(采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行)。
AOP是一种思想,它与具体的实现技术无关,任何一种符合AOP的思想的技术实现,都可以看做是AOP的实现。通过java的动态代理机制,就可以很容易实现AOP的思想,实际上Spring的AOP也是建立在Java的代理机制上。——我们发现AOP实际上是由目标类的代理类实现的。AOP代理其实是由AOP框架动态生成的一个对象,该对象可作为目标对象使用。AOP代理包含了目标对象的全部方法,但是AOP代理中的方法与目标对象的方法存在差异,AOP方法在特定切入点添加了增强处理,并回调了目标对象的方法。
总结下对AOP理解:
业务处理的主要流程就是核心关注点,与之关系不大的部分就是横切关注点。横切关注点的一个特点就是:他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事务处理。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
所谓面向切面编程,是一种通过预编译和运行期动态代理的方式实现在不修改源代码的情况下给程序动态添加功能的技术。
2.常用增强处理类型
增强处理类型 特点
Before 前置增强处理,在目标方法前织入增强处理
AfterReturning 后置增强处理,在目标方法正常执行(不出现异常)后织入增强处理
AfterThrowing 异常增强处理,在目标方法抛出异常后织入增强处理
After 最终增强处理,不论方法是否抛出异常,都会在目标方法最后织入增强处理
Around 环绕增强处理,在目标方法的前后都可以织入增强处理
3.
JavaEE学习 day02
4.注解方式可以将Bean的定义信息和Bean实现类结合在一起,Spring提供的注解有:
@Component:实现Bean组件的定义。
@Repository:用于标注DAO类。
@Service:用于标注业务类。
@Controller:用于标注控制器类。