【核心核心】8.Spring【AOP】注解方式
2024-09-06 12:06:24
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约束,注解约束)
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> </beans>
3.创建实现类
public interface UserService { public void save(); public void update(); public void delete(); }
@Service(value="userService") 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("业务层:更新客户.."); } @Override public void delete() { // TODO Auto-generated method stub System.out.println("业务层:删除客户.."); } }
4.将实现类托管于Spring注解方式
5.创建切面类
public class MyAspectAnn { public void log(){ System.out.println("前置通知.."); } public void arround(ProceedingJoinPoint joinPoint){ System.out.println("环绕通知1.."); System.out.println("环绕通知2.."); } public void after(){ System.out.println("后置通知.."); } }
6.将切面类托管于Spring
7.定义切面类方法的切入点
8.在配置文件中开启自动代理,并扫描注解
<!-- 扫描注解 --> <context:component-scan base-package="com.spring.demo1"/> <!-- 开启自动代理 --> <aop:aspectj-autoproxy/>
9.编写测试代码
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class Demo1 { @Resource(name="userService") private UserService userService; @Test public void m01(){ System.out.println("======================="); userService.save(); System.out.println("======================="); userService.update(); System.out.println("======================="); userService.delete(); System.out.println("======================="); } }
效果:
最新文章
- struts2DMI(动态方法调用)
- 为什么没有MMU的处理器无法安装操作系统?
- SQL语句学习笔记
- Sharepoint 2013 网站集的删除与还原
- Daily Scrum 12.9
- signalR制作微信墙 开源
- 网页html结构右侧栏固定,左侧自适应大小。
- VVDocumenter-Xcode 规范注释生成器 插件之安装调试适应新版本
- LeetCode24 Swap Nodes in Pairs
- Asp.net 主题 【1】
- 多校第五场 归并排序+暴力矩阵乘+模拟+java大数&;amp;记忆化递归
- 使用CountDownLatch和CyclicBarrier处理并发线程
- [Python Study Notes]计算cpu使用率
- Problem 2. number题解
- elemet-ui图标—特殊字符的unicode编码表
- 工具 Windows安装Anaconda
- 【优秀的设计绘图软件】Affinity Designer Beta for Mac 1.7
- PowerDesiger 生成C#实体类,字段转变成大小写方法
- 蛋白质结构模型和功能预测:I-TASSER工具的使用
- mac以及centos下安装Elasticsearch 以及权限管理插件