当前位置:首页 > 全部子站 > IT > 思科认证

Spring2.X中AOP的使用浅析

来源:长理培训发布时间:2017-12-21 16:26:19

 百度广告

  和Spring1.X相比,Spring2.X使用AspectJ的语法来声明AOP,这使得它更"标准",更灵活了。还是那句话,如果你不了解AspectJ并且打算使用Spring2.X的AspectJ式AOP,那就学学AspectJ吧,这方面的书还是很多了。

  Spring2.X下的切面有两种实现方式,一种是以Java文件定义切面(其只是普通的Java类),然后在配置文件中声明定义的切面;另一种是在Java类中引入和AOP相关的元数据(注释)。

  先介绍第一种配置方式。需要指出的是,Spring2.X的beans名称空间和Spring1.X有所不同,它采用了Schema而不是DTD(也可采用DTD方式,具体的请参考文档)。还是引入毫无意义的日志切面,定义的切面类LogingAspect

 

public class LogingAspect {
System.err.println(jp.getTarget().getClass());
}

 

< bean id = " logAspectTarget " class = " hibernatesample.service.util.LogingAspect " >
< aop:config > 
< aop:pointcut id = " businessService " expression = " execution(* hibernatesample.service.*.*(..)) " /> 
</ aop:aspect > 

 

< tx:advice id = " txAdvice " transaction - manager = " transactionManager " > 
< tx:method name = " get* " read - only = " true " /> 
< tx:method name = " * " /> 
</ tx:advice > 
< aop:pointcut id = " demoServiceMethods " expression = " execution(* hibernatesample.service.*.*(..)) " /> 
< aop:aspect id = " logAspect " ref = " logAspectTarget " > 
< aop:after pointcut - ref = " businessService " method = " logMethod " /> 
</ aop:config >

||| 

 

< bean id ="accountService" class ="hibernatesample.service.impl.AccountServiceImpl" > 
</ bean >

 

@Aspect

public class LogingAspect {
public void businessService(){}
public void logMethod(JoinPoint jp){
System.err.println(jp.getSignature().getName());
}


 

< aop:aspect id ="logAspect" ref ="logAspectTarget" > 
< aop:after pointcut-ref ="businessService" method ="logMethod" /> 
< bean id ="logAspectTarget" class ="hibernatesample.service.util.LogingAspect" ></ bean > 

<aop:aspectj-autoproxy/>

  如果觉得事务的配置没有使用注释更简洁(我倒不会有这样的想法,毕竟在配置文件中声明的事务只是那么固定的几段,除非作用于类上的事务逻辑上很复杂),也可以使用Spring提供的事务注释作用于类文件上,这可是更细粒度的事务声明了。

  坦率的说,由于时间有限,该文写的比较粗糙。对于Spring AOP有兴趣并有疑问的朋友,可以参考Spring的文档,它的文档做的还是不错的。 

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部