6.Spring中AOP术语与XML方式简单实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.Spring中AOP术语与XML方式简单实现相关的知识,希望对你有一定的参考价值。
1.AOP术语
1. Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点
2. Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义
3. Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)
4. Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field
5. Target(目标对象):代理的目标对象
6. Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程
7. Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
8. Aspect(切面):是切入点和通知的结合,以后咱们自己来编写和配置的
2.AOP基于AspectJ的XML方式简单实现
1.引入jar包
sprig框架基础包+JUntil整合包+日志包+AOP包
spring的传统AOP的开发的包
spring-aop-4.2.4.RELEASE.jar
com.springsource.org.aopalliance-1.0.0.jar
aspectJ的开发包
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aspects-4.2.4.RELEASE.jar
2.引入配置文件(AOP约束)
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> </bean>
3.创建实现类
public interface UserService { public void save(); public void update(); }
public class UserServiceImpl implements UserService { @Override public void save() { // TODO Auto-generated method stub System.out.println("保存用户.."); } @Override public void update() { // TODO Auto-generated method stub System.out.println("更新用户.."); } }
4.将实现类托管于Spring
<!-- 实现类 --> <bean id="userService" class="com.spring.demo1.UserServiceImpl"/>
5.定义切面类
public class LogImpl { public void log(){ System.out.println("记录日志...."); } }
6.将切面类托管于Spring
<!-- 切面类 --> <bean id="logImpl" class="com.spring.demo1.LogImpl"/>
7.在配置文件中完成AOP配置
<!-- 配置AOP --> <aop:config> <!-- 配置切面类:切入点 和 通知 --> <aop:aspect ref="logImpl"> <aop:before method="log" pointcut="execution(public void com.spring.demo1.UserServiceImpl.save())"/> </aop:aspect> </aop:config>
8.编写测试代码
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class Test1 { @Resource(name="userService") private UserService userService; @Test public void m01(){ userService.save(); userService.update(); } }
效果:
以上是关于6.Spring中AOP术语与XML方式简单实现的主要内容,如果未能解决你的问题,请参考以下文章