您的位置:首页 > 编程语言 > Java开发

Spring AOP的基本原理及面向切面编程的实现

2017-08-10 10:49 621 查看
先引入动态代理,

作用:可以在现有方法之上添加代码,增加现有程序的功能。

讲好处!

1.将与业务无关的通用功能抽取出来,单独编写,

开发人员可以专注于业务逻辑的编写。

这些通用功能包括日志,权限管理,事务处理,异常处理等。

2.通用功能的增加与删除,可以通过配置文件进行配置。

3.是一种编程方式的革命!

AOP 基本原理(动态代理:具体什么是动态代理模式可以网上自己查查)

引入AOP:面向切面的编程

AOP=面向切面编程=Aspect Oriented Programming:

技术原理:动态代理

之前讲过的OOP

OOP=面向对象编程=Object Oriented Programming,这个OOP不适合为分散的对象引入公共行为,这时候就需要AOP了

AOP 类似jsp中的filter(过滤器),struts2中的interceptor(拦截器)

两种配置方式:注解配置,XML配置

我们学习在注解方式使用aop

面向切面编程的实现

这个功能应该加在哪个类的哪个方法上??是加在方法执行之前,还是之后??

1.如:(对于想加在那个类的那个方法上,看自己引入的类和方法了)

@Before("execution(public void net.xinqushi.service.impl.save(net.xinqushi.model.User))")

        ///意思就是在这个add()的方法执行之之前调用这个方法(扩展了这个程序的功能)  

@AfterReturning("execution(public void net.xinqushi.service.Impl.UserServiceImpl.add(net.xinqushi.model.User))")
///意思就是在这个add()的方法执行之后调用这个方法(扩展了这个程序的功能)

2.spring中使用了一套面向aop编程的框架,叫做aspectj。

(1)修改spring配置文件

xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
(2)支持注解

<aop:aspectj-autoproxy/>

注意:在aop的这个类中 需要引入@Aspect ///说明此类是面向切面编程类

完成上述两个步骤即可就完成了注解方式使用AOP

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: