上面我们使用注解配置,注解配置使用很方便也很快速,但它不够灵活,不好维护。下面我们将使用配置文件来建立AOP。
我们还是基于上面的例子,使用配置文件,我们只需修改上面的SecurityHandler.java和applicationContext.xml,代码如下:
SecurityHandler.java
public class SecurityHandler {
private void checkSecurity() {
System.out.println("------checkSecurity()------");
}
}
applicationContext.xml
<bean id="securityHandler" class="spring.SecurityHandler"/>
<bean id="userManager" class="spring.UserManagerImpl"/>
<aop:config>
<aop:aspect id="security" ref="securityHandler">
<aop:pointcut id="allAddMethod" expression="execution(*spring.UserManagerImpl.add*(..))"/>
<aop:before method="checkSecurity" pointcut-ref="allAddMethod"/>
</aop:aspect>
</aop:config>
从上面代码,我们会发现一个问题,如何在切面中如何传递参数呢?
我们切面的参数都封装在JoinPoint类中,得到参数使用joinPoint.getArgs()返回一个数组,得到方法名使用joinPoint.getSignature().getName()。
测试一下,修改SecurityHandler.java
public class SecurityHandler {
private void checkSecurity(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
for (int i=0; i<args.length; i++) {
System.out.println(args[i]);
}
System.out.println(joinPoint.getSignature().getName());
System.out.println("----checkSecurity()----");
}
}
分享到:
相关推荐
源代码是spring-boot添加aop切面功能的demo,简单易懂.
Spring mvc mybatis plus 实现AOP 切面日志系统,带有数据库。可以自行拓展
spring-aop-3.2.6.RELEASE.jar ; spring-aop-3.2.6.jar spring面向切面编程需要导入的包
spring切面AOP所使用的jar包
spring aop 源码,spring框架切面用
Spring-aop面向切面编程实例 日志系统,权限控制等.
spring-aop面向切面系统日志案例
NULL 博文链接:https://364232252.iteye.com/blog/2371685
Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现.doc
最近公司要求和别的公司对接,但是不想破坏原有的架构,就只有用切面了,百度了下都不全面,就自己写了个小demo,只要导入spring4.2.3的jar就直接可以用,注解实现spingaop机制,1分意思下
spring-aop是Spring的另一个核心模块,是AOP主要的实现模块。作为继OOP后对程序员影响最大的编程思想...包含:spring-aop-5.2.0.RELEASE.jarspring-aop-5.2.0.RELEASE-javadoc.jarspring-aop-5.2.0.RELEASE-sources.jar
spring aop切面拦截指定类和方法实现流程日志跟踪 一般情况下,在不侵入业务代码的情况下,需要做流程日志跟踪是比较合理的 采用springaop切面思想
spring aop 自定义切面示例 aspectj 需要相应的架包支持
NULL 博文链接:https://364232252.iteye.com/blog/2371586
Spring,面向切面编程AOP例子!AOP(Aspect Oriented Programming)!
通过模拟SpringAOP,设置四个Advice实现简单的切面编程
NULL 博文链接:https://zyssnh.iteye.com/blog/1866867
16.2 Spring框架-AOP面向切面编程
aspectjrt-1.5.2.jar aspectjweaver-1.9.1.jar spring-aop-5.0.8.RELEASE.jar spring-aspects-5.0.8.RELEASE.jar
SpringAop面向切面编程