Spring面向切面编程——Spring实现AOP方式——通过注解实现
来源:互联网 发布:虚拟网络运营商 编辑:程序博客网 时间:2024/06/06 19:32
Log.java:
package log;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class Log { @Before("execution(* service.UserServiceImp.*(..))") public void before(){ System.out.println("方法执行前"); } @After("execution(* service.UserServiceImp.*(..))") public void after(){ System.out.println("方法执行后"); } @Around("execution(* service.UserServiceImp.*(..))") public Object around(ProceedingJoinPoint jp) throws Throwable { System.out.println("环绕前"); System.out.println("签名"+jp.getSignature()); /*执行目标方法*/ Object result = jp.proceed(); System.out.println("环绕后"); return result; }}
UserService.java:
package service;public interface UserService { public void add(); public void delete(); public void search(); public void update();}
UserServiceImp.java:
package service;public class UserServiceImp implements UserService { @Override public void add() { System.out.println("增加用户"); } @Override public void delete() { System.out.println("删除用户"); } @Override public void search() { System.out.println("查找用户"); } @Override public void update() { System.out.println("修改用户"); }}
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: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 id="userService" class="service.UserServiceImp"/> <bean id="log" class="log.Log"/> <!--会自动去找aop--> <aop:aspectj-autoproxy/></beans>
Test.java:
package test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import service.UserService;public class Test { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = (UserService) applicationContext.getBean("userService"); userService.add(); }}
测试结果:
环绕前签名void service.UserService.add()方法执行前增加用户环绕后方法执行后
可以加我微信一起学习:
阅读全文
0 0
- Spring面向切面编程——Spring实现AOP方式——通过注解实现
- Spring面向切面编程——Spring实现AOP方式——通过Spring API实现
- Spring——使用Spring的注解方式实现面向切面技术AOP
- Spring面向切面编程——Spring实现AOP方式——自定义类实现
- Spring 通过注解方式实现AOP切面编程
- (九)Spring详解——AOP面向切面编程实现
- Spring——AOP(面向切面编程)@AspectJ注解方式
- spring学习(八)—AOP通过注解方式实现
- Spring之注解实现aop(面向切面编程)
- Spring学习笔记 —— AOP(面向切面编程) 之使用ProxyFactoryBean实现AOP
- spring AOP面向切面编程的四种实现方式
- Spring AOP实现:面向切面编程——动态代理原理
- Spring之AOP实现面向切面编程
- Spring AOP(三)——通过@AspectJ注解切面
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- Spring面向切面编程--AOP,AspectJ,基于注解方式。
- Spring(十一)使用Spring的注解方式实现面向切面技术AOP
- Spring——aop(面向切面编程)
- 求圆柱体的体积
- gcc 常用命令
- cmake arm-none-eabi-gcc for stm32 cpp project
- python自动化工具之pywinauto(零)
- django工作机制
- Spring面向切面编程——Spring实现AOP方式——通过注解实现
- C语言 打印前n行杨辉三角形
- Bootstrap输入框组
- FZU 2252 Yu-Gi-Oh! 思维 枚举
- 请求大神帮帮我!!!真心寻求帮助
- 【开启Tomcat远程调试失败】Failed to connect to remote VM.
- 屡试不爽--安装Cocoapods1.1.0最新心得及问题总结!
- mysql中explain的type的解释
- 跑PCL的tutorial的第一个例子alignment_prerejective.cpp出现错误