时间:2021-05-19
1.首先创建web工程,之后导入Spring jar包,目录如下
2.文件代码
2.1AfterAdvice
package com.niit.aop;import java.lang.reflect.Method;import org.springframework.aop.AfterReturningAdvice;/* * 后置通知 * havingClass方法执行之后才执行。 * 输出日记 * */public class AfterAdvice implements AfterReturningAdvice { @Override public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable { // TODO Auto-generated method stub System.out.println("后置拦截:下课之后写作业"); }}2.2BeforeAdvice
package com.niit.aop;import java.lang.reflect.Method;import org.springframework.aop.MethodBeforeAdvice;public class BeforeAdvice implements MethodBeforeAdvice {/* * 前置通知 * 在havingClass切入点方法执行之前通知 * 用于验证用户的合法性。/判断一些数据是否存在。适用于检索。注册判断用户名是否存在。 * */ @Override public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { // TODO Auto-generated method stub System.out.println("前面拦截:上课之前要点名!在调用havingClass方法之前调用"); }}2.3StudentIntercepter
package com.niit.aop;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;public class StudentIntercepter implements MethodInterceptor { @Override public Object invoke(MethodInvocation method) throws Throwable { // TODO Auto-generated method stub if(method.getArguments().length>0) { String name=(String)method.getArguments()[0]; if("hmq".equals(name)){ System.out.println("中间拦截:你是hmq"); } else { System.out.println("中间拦截:你是学生"); } method.proceed(); } return null; }}2.4StudentIF
package com.niit.logic;public interface StudentIF { public void havingClass(String name); public void dohomework(String name); }2.5Student
package com.niit.logic;public class Student implements StudentIF { //作为aop的目标方法public void havingClass(String name) { System.out.println("aop的目标方法"); System.out.println(name+"正在上课");}public void dohomework(String name) { System.out.println(name+"正在写作业");}}2.6StudentLogic
package com.niit.logic;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class StudentLogic { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); StudentIF s=(StudentIF)context.getBean("student"); s.havingClass("hmq"); System.out.println("---------------"); s.dohomework("hmq"); System.out.println("---------------"); s.havingClass("abc"); System.out.println("---------------"); s.dohomework("abc"); System.out.println("---------------"); }}2.7applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://.niit.exception.MyExceptionHandler"/> --></beans>4效果图
到此这篇关于SpringMVC用XML方式实现AOP的方法示例的文章就介绍到这了,更多相关SpringMVC XML实现AOP内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP下面是使用AspectJ注解实现AOP的JavaProject首先是位于class
这篇文章给大家介绍了springAOP的实现方式,三种分别是纯XML方式,XML+注解,纯注解方式。Spring实现AOP思想使⽤的是动态代理技术
AOP的配置方式有2种方式:xml配置和AspectJ注解方式。今天我们就来实践一下xml配置方式。我采用的jdk代理,所以首先将接口和实现类代码附上packa
Spring只支持XML方式而没有实现注解的方式(也叫AspectJ方式)的AOP,所以要使用@Aspect注解,只能引入AspectJ相关的jar包aopal
springmvc实现Restful返回xml格式数据最近,想在自己的小项目中搭建一个Restful风格的服务接口api,项目用的springmvc3,听说sp