文档章节

AspectJ 入门例子

秋氺
 秋氺
发布于 2016/08/12 13:18
字数 239
阅读 107
收藏 1

所需要的包

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>1.8.9</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.9</version>
		</dependency>

1.定义一个接口

public interface IStudent {

	public void hello(String name);
}

2.实现上面的接口

public class StudentImpl implements IStudent{

	public void hello(String name) {
		System.out.println("我的名字叫:"+name);
	}
}

3.定义切面类

import org.aspectj.lang.JoinPoint;

public class StudentAdvice {

	public void logBefore(JoinPoint joinPoint) {
		System.out.println("方法执行前执行");
	}
	public void logAfter(JoinPoint joinPoint) {
		System.out.println("方法执行后执行");
	}
}

4.定义applicationContext.xml

<aop:aspectj-autoproxy />

	<bean id="student" class="com.aop.StudentImpl" />
	<!-- Aspect -->
	<bean id="logAspect" class="com.aop.StudentAdvice" />

	<aop:config>
		<aop:aspect id="aspectLoggging" ref="logAspect" >
			<!-- @Before -->
			<aop:pointcut id="pointCutBefore"
				expression="execution(* com.aop.IStudent.hello(..))" />
			<aop:before method="logBefore" pointcut-ref="pointCutBefore" />
			
			<!-- @After -->
			<aop:pointcut id="pointCutAfter"
				expression="execution(* com.aop.IStudent.hello(..))" />
			<aop:after method="logAfter" pointcut-ref="pointCutAfter" />
			
		</aop:aspect>
	</aop:config>	

5.创建测试类

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		IStudent student = ac.getBean("student", IStudent.class);
		student.hello("张三");

方法执行前执行
我的名字叫:张三
方法执行后执行

© 著作权归作者所有

共有 人打赏支持
秋氺
粉丝 0
博文 33
码字总数 6555
作品 0
海淀
程序员
私信 提问
Spring中的AOP(一)——AspectJ的基本使用

AOP(Aspect Orient Programming),也就是面向切面编程,作为面向对象编程的一种补充,当前已经成为一种比较成熟的编程思想,其实AOP问世的时间并不长,甚至在国内的翻译还不太统一(另有人...

摆渡者
2014/03/13
0
1
实例简述Spring AOP之对AspectJ语法的支持

Spring的AOP可以通过对@AspectJ注解的支持和在XML中配置来实现,本文通过实例简述如何在Spring中使用AspectJ. 一:使用AspectJ注解: 1,启用对AspectJ的支持: 通过在Spring的配置中引入下列元素...

晨曦之光
2012/04/25
845
0
2014-03-11 Spring的学习(3)------面向切面编程(AOP)

AOP概念 首先让我们从一些重要的AOP概念和术语开始。这些术语不是Spring特有的。不过AOP术语并不是特别的直观,如果Spring使用自己的术语,将会变得更加令人困惑。 切面(Aspect):一个关注...

查封炉台
2014/03/11
0
0
spring aop 申明了切面类之后,如何申明切入点呢?

8.2.3 Declaring a pointcut Recall that pointcuts determine join points of interest, and thus enable us to control when advice executes. Spring AOP only supports method execution......

Oscarfff
2015/04/08
0
0
使用Spring进行面向切面编程(AOP)

转载于http://www.blogjava.net/supercrsky/articles/174368.html 文章太长,写的很好,没看完,转过来慢慢理解,品味 简介 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方...

zmf
2014/09/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
15
3
Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
12
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
19
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部