Spring中的AOP的简单应用

    今天玩这个挺Happy的~~~没有系统地学习,只是用到的时候临时抱抱佛脚,真的是汗颜啊~~

    这篇应该是最不错的:

   http://51mynet.blogcn.com/diary,5094753.shtml

   它是用来做权限的。作为例子初学不错!嘎嘎~

 

    因为现在系统中,要跟踪一些用户的操作信息,所以用到了代理~目前的实现思路是:

    1。写一个接口 IActionProxy,  让每个Action 都实现它。

   2。Spring四种通知(Advice)形式中,用到的是Interception Around通知,因为:前后拦截是唯一可以控制目标方法是否被真正调用的拦截类型,也可以控制返回对象。而前置拦截或后置拦截不能控制,它们不能印象目标方法的调用和返回。所以选择这种方式。并写了个拦截器,把要实现的操作都放在这里做。

 3。ApplicationContext.xml的定义

  1. <bean id="actionInterceptor"  class="com.ll.aop.ActionInterceptor">bean>  
  2. <bean id="onlineAction"   class="com.ll.aop.OnlineAction">bean>  
  3. <bean id="doAction"  class="org.springframework.aop.framework.ProxyFactoryBean">  
  4. <property name="proxyInterfaces">  
  5.      <value>com.ll.aop.IActionProxyvalue>  
  6.  property>  
  7.  <property name="interceptorNames">  
  8.     <list>  
  9.      <value>actionInterceptorvalue>  
  10.    <list>  
  11.  property>  
  12.  <property  name="target">  
  13.      <ref onlineAction/> 
  14.  <property>  
  15.   
  16. <bean>  

  在配置文件里头配置下就OK了。

  再就是用到了单态模式,去获得下面代码中的代理的bean,在整个系统初始化的时候,就给他分配好了~

一般测试调用的java 代码
  1. ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");     
  2. IActionProxy   iap = (IActionProxy)context.getBean("doAction");  

      在项目架构当中,就没必要这么写了.用的是如下的:

    java 代码

  1. WebApplicationContext   wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());
  2. IActionProxy iap=(IActionProxy )wac.getBean("doAction") ;  

 

好象这样的思路不对哦,所以只好做费了.......因为target里头的ref只能配置一个,不能用list....所以不能用了.而且,项目比较大,不太好用.

 估计是自己对AOP这种机制还不是很熟络的了解.有时间该系统地看看书了....嘎嘎~~~~

 

这种方式,只能实现单一类的代理,也就是说可以为一个类分配多个拦截器,但是不能把一个拦截器给多个类~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值