Spring Aop

小课堂

分享人:杜腾飞

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

先简单介绍下背景

Spring是一个基于IOC和AOP结构的开源轻量级开发应用框架,Rod Johnson为了解决企业级应用开发复杂性创建的,因此spring也说是J2EE系统的框架

2.知识剖析

AOP思想

spring的一种编程思想,就是把一个要做的功能分成两类;核心业务功能以及周边业务功能,也可以说是辅助功能; 就像任务中的登陆,增加数据,删除数据是核心业务;而性能统计,打印日志就属于周边辅助性的功能; 周边功能理论上去掉,不会影响核心业务的实施;但是实际编程中不会那样做,就像日志这个周边功能,除了反应代码是否运行;还可以输出重要的信息, 帮助调试;分析业务现状或者问题等,所以不可能忽略

什么是切面?

就是在Spring的面向切面编程AOP思想的周边功能

什么是AOP?

Aspect Oriented Program面向切面编程:区分了核心和周边功能,理解了切面的定义,知道了aop的面向切面的思想,就可以定义Aop了; 依据上面讲的面向切面编程的AOP思想,然后分别对核心业务功能和切面功能独立进行开发;然后把切面功能和核心业务功能"编织"在一起, 这就叫AOP,也就是面向切面编程.

3.常见问题

怎么理解应用AOP?

4.解决方案

通过编码来演示一下,AOP中的概念

基于Xml配置文件的AOP

基于注解的AOP

5.编码实战

AOP的实际应用

6.扩展思考

Aop的作用:

利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。以日志为例, 如果不用AOP,每次打日志都去修改业务代码;使用AOP业务代码不需要做任何改变,通过配置就可以实现哪些业务要用上日志,哪些业务不用上日志;代码量更小,而不改代码意味着,犯错的机会更小,维护成本更低,同一时间,开发人员能完成的工作量也更大了。

7.参考文献

1,http://www.cnblogs.com/ooooevan/p/5816207.html

2,http://m.blog.csdn.net/Harrytsz/article/details/63693675

3,http://www.cnblogs.com/ooooevan/p/5823598.html

4,https://ptteng.github.io/PPT/PPT-java/JAVA-task2-Spring%20AOP.html#/16

5,https://ptteng.github.io/PPT/PPT-java/Java-task3%20Spring%20AOP.html#/

8.更多讨论

AOP的代理模式

Thanks

By : dtf