首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring收拾12 - 面对切面(AOP)2 - 配置文件的方式实现AOP

2012-10-09 
Spring整理12 -- 面对切面(AOP)2 -- 配置文件的方式实现AOP上面我们使用注解配置,注解配置使用很方便也很

Spring整理12 -- 面对切面(AOP)2 -- 配置文件的方式实现AOP

上面我们使用注解配置,注解配置使用很方便也很快速,但它不够灵活,不好维护。下面我们将使用配置文件来建立AOP。

我们还是基于上面的例子,使用配置文件,我们只需修改上面的SecurityHandler.java和applicationContext.xml,代码如下:

SecurityHandler.java

public class SecurityHandler {      private void checkSecurity() {       System.out.println("------checkSecurity()------");    }    }

?
?

applicationContext.xml

????

<bean id="securityHandler" 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()----");    }}

?

热点排行