一、创建项目
项目名称:spring101003
二、添加jar包
1.在项目中创建lib目录
/lib
2.在lib目录下添加相关spring jar包
--用于AspectJ
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
--用于切面编程
com.springsource.org.aopalliance-1.0.0.jar
commons-logging.jar
junit-4.10.jar
log4j.jar
--用于切面编程
spring-aop-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
三、添加配置文件
1.在项目中创建conf目录
/conf
2.在conf目录下添加配置文件
配置文件名称:applicationContext.xml
配置文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
四、创建业务bean
1.在src目录下创建业务bean包
包名:cn.jbit.spring101003.service
2.在包下创建业务bean
业务bean名称:UserService.java
业务bean内容:
/**
* 被代理类
* @author Administrator
*
*/
public class UserService {
/**
* 2.修改
*/
public int update(){
System.out.println("update method");
return 1;
}
}
五.创建切面
1)在src下创建包
包名:cn.jbit.spring101003.aspect
2)在包下创建自定义切面类
切面名称:MyAspect.java
切面内容:
/**
* 自定义切面
* @author Administrator
*
*/
@Aspect
public class MyAspect {
/**
* 2.后置通知
*/
public void afterReturning(Object returnVal){
System.out.println("xml后置通知"+returnVal);
}
}
六、在核心配置文件中添加配置信息
<!-- 基于xml -->
<!-- 配置目标类 -->
<bean id="userservice" class="cn.jbit.spring101003.service.UserService"></bean>
<!-- 配置切面 -->
<bean id="myaspect" class="cn.jbit.spring101003.aspect.MyAspect"></bean>
<!-- 使用切面 -->
<aop:config proxy-target-class="false">
<!-- 引用切面 -->
<aop:aspect ref="myaspect">
<!-- 准备切点 -->
<aop:pointcut expression="execution(* cn.jbit.spring101003.service.UserService.*(..))" id="mypintcut"/>
<!-- 2.后置通知 -->
<aop:after-returning method="afterReturning" pointcut-ref="mypintcut" returning="returnVal"/>
</aop:aspect>
</aop:config>
七、测试
1.在项目中创建test目录
/test
2.在test目录中创建测试包
包名:cn.jbit.spring101003.aspect
3.在测试包中创建测试类
测试类名:MyAspectTest.java
测试内容:
/**
* 测试类
* @author Administrator
*
*/
public class MyAspectTest{
/**
* 2.测试后置通知
*/
@Test
public void testAfterReturning(){
//加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
//根据bean id 获取对象
UserService userService = (UserService) context.getBean("userservice");
//调用保存方法
userService.update();
}
}
spring-xml版本AspectJ后置通知
时间: 2024-10-21 10:49:10
spring-xml版本AspectJ后置通知的相关文章
Spring初学之xml实现AOP前置通知、后置通知、返回通知、异常通知等
实现两个整数的加减乘除,在每个方法执行前后打印日志. ArithmeticCalculator.java: package spring.aop.impl.xml; public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j); } ArithmeticCalculatorImpl.java: packag
Spring AOP前置通知和后置通知
Spring AOP AspectJ:Java社区里最完整最流行的AOP框架 在Spring2.0以上的版本中,可以使用基于AspectJ注解或基于XML配置的AOP 在Spring中启用AspectJ注解支持 要在Spring应用中使用AspectJ注解,必须在classpath下包含AspectJ类库:aopalliance.jar.aspectj.weaver.jar和spring-aspects.jar 将aop Schema添加到<beans>根元素中. 要在Spring IOC容器
Spring AOP 前置通知和后置通知
加入JAR包: 在配置文件中加入AOP 的命名空间 基于注解的注解的方式,配置文件如下: beans-aop-helloworld.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema
Spring初学之annotation实现AOP前置通知和后置通知
实现两个整数的加减乘除,并在每个计算前后打印出日志. ArithmeticCalculator.java: package spring.aop.impl; public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j); } ArithmeticCalculatorImpl.java: package sp
Spring初学之annotation实现AOP前置通知、后置通知、返回通知、异常通知。
实现两个整数的加减乘除.在执行每个方法之前打印日志. ArithmeticCalculator.java: package spring.aop.impl; public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j); } ArithmeticCalculatorImpl.java: package sp
spring学习 十 schema-based 前置后后置通知
spring 提供了 2 种 AOP 实现方式:(1)Schema-based ,(2)AspectJ Schema-based:每个通知都需要实现接口或类,配置 spring 配置文件时在<aop:config>配置 AspectJ:每个通知不需要实现接口或类,配置 spring 配置文件是在<aop:config>的子标签<aop:aspect>中配置 基于Schema-based实现的入门程序 (1)第一步:导入jar包,除了spring中必须的包,下面两个包 (
[原创]java WEB学习笔记106:Spring学习---AOP的通知 :前置通知,后置通知,返回通知,异常通知,环绕通知
1.通知分类: @Before: 前置通知, 在方法执行之前执行 @After: 后置通知, 在方法执行之后执行 @AfterRunning: 返回通知, 在方法返回结果之后执行 @AfterThrowing: 异常通知, 在方法抛出异常之后 @Around: 环绕通知, 围绕着方法执行 关于方法签名 看第五点 2.前置通知 3.后置通知:在后置通知中,不能访问目标方法执行的结果 4.返回通知 5.异常通知 6.环绕通知 1 package com.
18Spring后置通知
Spring后置通知,和前置通知类似,直接看代码: package com.cn.spring.aop.impl; //加减乘除的接口类 public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } package com.cn.spring.aop.impl; import org.spri
spring-AspectJ后置通知
一.创建项目 项目名称:spring101002二.添加jar包 1.在项目中创建lib目录 /lib 2.在lib目录下添加相关spring jar包 --用于AspectJ com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar spring-aspects-3.2.0.RELEASE.jar --用于切面编程 com.springsour