calmJava

StillWaterRunsDeep
随笔 - 3, 文章 - 11, 评论 - 0, 引用 - 0
数据加载中……

spring_7

1:
使用XML方式来配置Spring AOP

2:
Spring aop 应用方面:
例如:权限系统、运行期监控

3:
<bean id="aspectbean" class="cn.rui.aop.XmlInterceptor"/>
<aop:config>
 <aop:aspect id="asp" ref="aspectbean">
  <aop:pointcut id="mycut" expression="execution(* com.rui..*.*(..))"/>
  <aop:before pointcut-ref="mycut" method="doAccessCheck"/>
  <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/>
  <aop:after-throwing pointcut-ref="mycut" method="doAfterThrowing"/>
  <aop:after point-ref="mycut" method="doAfter"/>
  <aop:around point-ref="mycut" method="doBasicProfiling"/>
 </aop:aspect>
</aop:config>

4:
对于执行的表达式 execution(* com.rui..*.*(..)) execution(1 2..3.4(5))

中对于1 为方法的返回值 可以指定任意类型 * 代表所有类型, 其他类型用包名 + 类名如java.lang.String,空为void, 若取非某种类型则为 ! 加上 类型即可 如: !java.lang.String 或 !void

对于2 为包名 对于包名后的两个点意为包含所有的子包,也可直接为包名+ 类名

对于3为类名 可以写 * 代表所有的类,也可指定特定的类 直接类名即可

对于4为方法名 * 代表所有方法 ,也可指定特定的方法

对于 5 为方法的参数 可以指定 .. 代表所有的方法,对于方法的比如方法的第一个参数必须为java.lang.Integer 的则表达式为 (java.lang.Integer,..)
对于最后一个参数必须为java.lang.String则为(..,java.lang.String) 前面的两个点代表String类型前可能有也可能没有

 

 


 

posted on 2011-01-05 21:00 calmJava 阅读(139) 评论(0)  编辑  收藏 所属分类: Spring


只有注册用户登录后才能发表评论。


网站导航: