使用注解配置 AOP
一、使用注解(基于Aspect)
1、spring不会自动去寻找注解,必须告诉spring那个包下的类有注解
1.1 先引入xmlns:context命名空间
<context:component-scan base-package="com.bjsxt.advice"></context:component-scan>
2、@Component
2.1 相当于<bean/>
2.2 如果没有参数,把类名首字母变小写,相当于<bean id=" "/>
2.3 也可以 @Component(" 自定义名称 ")
3、实现步骤:
3.1、在spring配置文件中设置注解在哪些包中
<context:component-scan base-package="com.bjsxt.advice,com.bjsxt.test"></context:component-scan>
3.2、在Demo类中添加 @Componet
3.2.1 在方法上添加 @Pointcut(" ") 定义切点
@Component
public class Demo {
@Pointcut("execution(* com.bjsxt.test.Demo.demo1())")
public void demo1(){
System.out.println("demo1");
}
}
3.3、在通知类中配置
3.3.1 @Component 类被spring管理
3.3.2 @Aspect 相当于<aop:aspect/> 表示通知方法在当前类中
@Component
@Aspect
public class Advice {
@Before("com.bjsxt.test.Demo.demo1()")
public void mybefore(){
System.out.println("前置通知111");
}
@After("com.bjsxt.test.Demo.demo1()")
public void myafter(){
System.out.println("后置通知2222");
}
@AfterThrowing("com.bjsxt.test.Demo.demo1()")
public void mythrow(){
System.out.println("异常通知3333");
}
@Around("com.bjsxt.test.Demo.demo1()")
public Object myarround(ProceedingJoinPoint p) throws Throwable{
System.out.println("环绕前置");
Object result = p.proceed();
System.out.println("环绕后置");
return result;
}
}
使用注解配置 AOP的更多相关文章
- spring-AOP框架(基于AspectJ注解配置AOP)
基于AspectJ注解配置AOP 1.加入jar包: 要在Spring应用中使用AspectJ注解,必须在classpath下包含AspectJ类库:aopalliance.jar.aspectj.w ...
- Spring注解配置Aop
之前学习了SpringAop的基本原理.http://www.cnblogs.com/expiator/p/7977975.html 现在尝试使用注解来配置SpringAop. Aop,面向切面编程. ...
- 注解配置AOP切面编程
1.导入先关jar包 2.编写applicationContext.xml,配置开启注解扫描和切面注解扫描 <?xml version="1.0" encoding=&quo ...
- Spring基于注解配置AOP
D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\aop.xml <?xml version="1.0" encoding ...
- Spring的AOP机制---- AOP的注解配置---- AOP的注解配置
3333隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约隐隐约约噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢 ...
- spring aop注解配置
spring aop是面向切面编程,使用了动态代理的技术,这样可以使业务逻辑的代码不掺入其他乱七八糟的代码 可以在切面上实现合法性校验.权限检验.日志记录... spring aop 用的多的有两种配 ...
- [10] AOP的注解配置
1.关于配置文件 首先在因为要使用到扫描功能,所以xml的头文件中除了引入bean和aop之外,还要引入context才行: <?xml version="1.0" enco ...
- Spring学习记录(十三)---基于xml文件配置AOP
上一篇讲了用注解配置AOP,现在讲用xml怎么配置AOP 其实逻辑是一样的,只是用xml的方法,要把这种逻辑写出来,告诉spring框架去执行. 例子:这里的例子和上一篇的例子一样.换成xml方式 / ...
- 【Spring五】AOP之使用注解配置
AOP使用注解配置流程: 1.当spring容器启动时候. < context:component- scan base-package= "cn.itheima03.sprin ...
随机推荐
- CentOS 7 单用户模式+救援模式
CentOS 7 单用户模式+救援模式 CentOS 7 单用户模式+救援模式.有时候大家可能会忘记自己的root密码,或者错误(命令输入错误,命令位置输入有误等)编辑了一个/etc目录下的核心文件导 ...
- FortiGate软件版本升级
1.Web界面升级 1)注意:升级前,务必做好配置备份 2)要点 1.FortiGate防火墙的每款型号都有单独的版本文件,升级前务必确认下当前的设备型号: 2.升级包的后缀名必须为.out,前缀任意 ...
- 使用BulkCopy报错 从 bcp 客户端收到一个对 colid 19 无效的列长度
====System.Data.SqlClient.SqlException: 从 bcp 客户端收到一个对 colid 19 无效的列长度. 从0开始数,数据库上表的第19列
- html 导出pdf
地址: https://developers.itextpdf.com/examples/xml-worker/html-lists 主方法: public string Generate(strin ...
- Runnable如何传参
private class TimerUpdateTask implements Runnable{ private boolean isUnion = false; public TimerUpda ...
- 用js写已知abc+cba = 1333,其中a、b、c均为一位数,编程求出满足条件的a、b、c所有组合。
<!--<script type="text/javascript"> //已知abc+cba = 1333,其中a.b.c均为一位数,编程求出满足条件的a.b. ...
- appium 问题
adb shell pm list packages:列出所有的包名.adb shell dumpsys package:列出所有的安装应用的信息dumpsys package com.android ...
- mysql分组后将未分组的列合并成行GROUP BY,GROUP_CONCAT
今天遇到一个问题,消息通知可以同时发送给多个班级,而查询消息通知的时候并不需要根据班级分组,如何把多个班级的名称合并成一行数据追加到消息通知的后面呢 然后就发现了 group_concat: SELE ...
- ef linq 中判断实体中是否包含某集合
我有一个需求,问题有很多标签,在查询时,需要筛选包含查询标签的一个集合(List<int>),以前的做法是先查询出来符合查询标签条件的标签id的结果集A,再查询问题时,加上判断是否包含该标 ...
- jquery的validate表单验证
html: <form id="reg" action="123.html"> <p class="myerror"> ...