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类型前可能有也可能没有