什么是AOP?

AOPAspect Oriented Programming的缩写意为面向切面编程也叫面向方面),能够经过预编译方式和运行期动态代理实如今不修改源代码的状况下给程序动态统一添加功能的一种技术编程

AOP是目前软件开发中的一个热点也是Spring框架中的一个重要内容利用AOP能够对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度下降提升程序的可重用性同时提升了开发的效率安全

AOPOOP的延续主要的功能是日志记录性能统计安全控制事务处理异常处理等等框架

Spring中提供了AOP的丰富支持容许经过分离应用的业务逻辑与系统级服务例如审计(auditing)和事务(transaction)管理进行内聚性的开发应用对象只实现它们应该作的——完成业务逻辑——仅此而已它们并不负责甚至是意识其它的系统级关注点例如日志或事务支持性能