配置@aspectj-autoproxy切面,生成代理对象
来源:互联网 发布:天龙八部3答题器源码 编辑:程序博客网 时间:2024/06/07 10:14
有时候在调用一个方法时,可能需要在调用该方法之前需要做点其他的操作,比如我要做一个往数据库中插入数据的操作,这个插入的方法有一个json数据,但是我可能在插入之前还需要往这个json参数中塞入其他的数据。这个时候spring的aspectj-autoproxy就起到了作用了。
首先可以先在配置文件中配置一个aop,如下:
<aop:aspectj-autoproxy proxy-target-class="true" >
<aop:include name="studentInsertAspect"/>
</aop:aspectj-autoproxy>
proxy-target-class属性默认值为false,表示使用jdk动态代理织入增强,当配为<aop:aspectj-autoproxy poxy-target-class="true"/>时,表示使用CGLib
动态代理技术织入增强。不过即使proxy-target-class设置为false,如果目标类没有声明接口,则spring将自动使用CGLib动态代理。
<aop:include name="studentInsertAspect" />,这个地方的name为添加了@Aspect注解类名,如:
@Aspect@Component("studentInsertAspect")public class StudentInsertAspect{@Autowiredprivate StudentService studentService;/*****/@Before("execution(* com.class.service.StudentService.insert(..))")public void inputTestData(JoinPoint point){ JSONObject json = null; for(Object obj : point.getArgs()){ if(obj instanceof JSONObject){ json = (JSONObject)obj; } } if(json != null){ json.accumulate("studentNum","class001"); } }}
上面那个类用了@Before注解,是在触发了studentService的插入方法的时候,率先触发inputTestData这个方法,其中,插入的方法可能带有一个json的参数,
,然后在inputTestData方法中往json中插入一个studentNum,这样,在insert中就可以得到一个studentNum的数据。
当然还有其他的注解,有before也有after,具体的还需后续继续了解学习了,spring的功能真的是很强大,希望能多多学习!
阅读全文
0 0
- 配置@aspectj-autoproxy切面,生成代理对象
- spring添加<aop:aspectj-autoproxy>让注解自为类生成代理对象时出错
- Spring配置---<aop:aspectj-autoproxy />
- spring代理注解<aop:aspectj-autoproxy />
- Spring的<aop:aspectj-autoproxy>配置
- Spring配置项之<aop:aspectj-autoproxy />
- Spring配置项之<aop:aspectj-autoproxy />
- Spring配置项之<aop:aspectj-autoproxy />
- Spring AOP配置中的问题aop:aspectj-autoproxy
- 关于spring切面使用<aop:aspectj-autoproxy/>报错的解决方法
- Spring三种切面 <aop:aspectj-autoproxy/><aop:config></aop:config> <aop:scoped-proxy/>
- <aop:aspectj-autoproxy />作用
- <aop:aspectj-autoproxy />作用
- <aop:aspectj-autoproxy />作用
- <aop:aspectj-autoproxy/>
- <AOP:aspectj-autoproxy/>
- aop:aspectj-autoproxy
- <aop:aspectj-autoproxy />作用
- mybatis标签用法
- JAVA Head First 第四章 方法操作实例变量
- svn常用命令
- 任务堆栈
- Storm 0.9.3的新特性
- 配置@aspectj-autoproxy切面,生成代理对象
- java实体转xml
- 邮箱的代理发送Send as权限不生效
- 网易云音乐爬虫
- java设计模式之抽象工厂模式
- 软件测试
- ID卡——IC卡(基于物理层的安全问题)
- 编写一个递归调用函数,输出vector对象的内容
- InnoDB关键特性 Doublewrite