文档章节

AspectJ 入门例子

秋氺
 秋氺
发布于 2016/08/12 13:18
字数 239
阅读 106
收藏 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
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
《Spring Recipes》第三章笔记1:Enabling AspectJ Annotation

《Spring Recipes》第三章笔记:Enabling AspectJ Annotation 问题 如何开启Spring容器对AspectJ注解的支持。 解决方案 在配置文件中引入aop schema,添加<aop:aspectj-autoproxy />配置。 ...

LiJIaming
2012/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

DeepMind 开源图神经网络的代码

用于支持论文《Relational inductive biases, deep learning, and graph networks》。 github A graph network takes a graph as input and returns a graph as output. The input graph has......

shengjuntu
20分钟前
1
0
python2编码详解、一

以前使用python3没觉的什么,跟着公司使用python2后被编码问题折磨的痛不欲生,好好研究了一下编码问题,参考了很多博文,加入自己的理解,这里只是对编码的介绍,下一篇是python2中编码问题...

hc321
28分钟前
1
0
基于OpenSSL的一些常用加密签名算法

目前包括:MD5、SHA512、DES、RSA加解密、RSA+MD5签名验证算法,在openssl基础上再进行封装,使用简单,头文件需要包含openssl库,可以使用vcpkg自动管理,省去繁琐的配置工程的过程。 该RSA...

LoSingSang
37分钟前
1
0
spring Data JPA

什么是JPA? 全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元...

狼王黄师傅
42分钟前
1
0
微信小程序 - 使用七牛云 API 截取第 n 秒图像为封面图

前面分享过七牛的上传操作,在这里说下使用七牛 api 对视频在页面的处理,比如你的视频上传之后获取七牛视频链接,这时候你怎么展示它呢? 在页面可以使用小程序提供的原生组件 video ,可以...

几个栗子
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部