大家好,我是IT修真院上海分院,一枚正直纯洁善良的如刚入门的Java程序员,今天试着给大家分享一下spring的知识点AOP的理解运用
1.先简单介绍下背景
Spring是一个基于IOC和AOP结构的开源轻量级开发应用框架,Rod Johnson为了解决企业级应用开发复杂性创建的,因此spring也说是J2EE系统的框架
2.知识剖析
AOP思想
spring的一种编程思想,就是把一个要做的功能分成两类;核心业务功能以及周边业务功能,也可以说是辅助功能;就像任务中的登陆,增加数据,删除数据是核心业务;而性能统计,打印日志就属于周边辅助性的功能;周边功能理论上去掉,不会影响核心业务的实施;但是实际编程中不会那样做,就像日志这个周边功能,除了反应代码是否运行;还可以输出重要的信息,帮助调试;分析业务现状或者问题等,所以不可能忽略
什么是切面
就是在Spring的面向切面编程AOP思想的周边功能
什么是AOP?
Aspect Oriented Program面向切面编程:区分了核心和周边功能,理解了切面的定义,知道了aop的面向切面的思想,就可以定义Aop了;依据上面讲的面向切面编程的AOP思想,然后分别对核心业务功能和切面功能独立进行开发;然后把切面功能和核心业务功能"编织"在一起,这就叫AOP,也就是面向切面编程.
通过编码来演示一下,AOP中的概念
基于Xml配置文件的AOP
基于注解的AOP
Aop的作用
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。以日志为例, 如果不用AOP,每次打日志都去修改业务代码;使用AOP业务代码不需要做任何改变,通过配置就可以实现哪些业务要用上日志,哪些业务不用上日志;代码量更小,而不改代码意味着,犯错的机会更小,维护成本更低,同一时间,开发人员能完成的工作量也更大了。
参考文献:
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#/
更多讨论:
AOP的两种代理模式
今天的分享就到这里啦,刚学没多久,水平不够,欢迎大家指正,拍砖~
我的邀请码:15686104,或者你可以直接点击此链接http://www.jnshu.com/login/1/15686104