加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Spring中Aop的扩展及剖析

发布时间:2016-10-31 00:09:34 所属栏目:教程 来源:站长网
导读:副标题#e# AOP简介: 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离

 1、定义接口实现类,并重写该方法

public interface ISomeService {
    public void list();
}
public class SomeService implements ISomeService{
 
    public void list() {
        System.out.println("SomeService.list()");      
    }
 
}

2、通过注解实现增强,自定义类

     使用@Aspect注解将该类定义为切面,并且使用@Before注解将该方法定义为前置增强,增强定义完后,就可以在Spring配置文件中织入使用注解定义的增强了

@Aspect
public class MyAspectj {
@Before(value = "execution(* *..service.*.*(..))") public void MyBeforeAdvice(){ System.out.println("==before=="); }
}

3、applicationContext.xml配置文件

Spring中Aop的扩展及剖析

4、进行测试:

public class Test01 {
@Test
public void proxyTest(){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
    ISomeService ser=(ISomeService) ctx.getBean("someService");
    ser.list();
     
}

实现效果: 

Spring中Aop的扩展及剖析


五:Aspectj第三方框架,使用xml进行配置

  Spring中Aop的扩展及剖析

  首先建立一个纯净的MyAspect类。

  唯一不同的就是在applicationContext.xml配置文件中进行配置。

  Spring中Aop的扩展及剖析

  测试类:

  Spring中Aop的扩展及剖析


 

※※※补充点:

切入点表达式:
 execution(【modifiers-pattern?】 访问修饰符
 ret-type-pattern 返回值类型
【declaring-type-pattern?】 全限定性类名
 name-pattern(param-pattern) 方法名(参数名) 包名.类型名.方法名
【throws-pattern?】) 抛出异常类型

切入点表达式要匹配的对象就是目标方法的方法名。所以,execution表达式中明显就是方法的签名。

注意:表达式中加[]的部分表示可省略部分,各部分间用空格分开。在其中可以使用以下符号:
符号意义:
*    0至多个任意字符
..    用在方法参数中,表示任意多个参数
      用在包名后,表示当前包及其子包路径
+    用在类名后,表示当前类及其子类
      用在接口后,表示当前接口及其实现类
案例:
execution(public * *(..)) 指定切入点为:任意公共方法
execution(* set*(..)) 指定切入点为:任何一个以"set"开始的方法 


 

拥有梦想只是一种智力,实现梦想才是一种能力。

               ---告诫自己

 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读