spring日志添加

小弟使用ssh和ssm做过项目,这里的s总有一个是spring,那么为啥spring有如此超然的地位呢?表现层的servlet,struts和springmvc,数据层的jdbc,mybatis和hibernate,单做为整合的框架只有spring了,实施证明,spring的ioc和aop确实是一件神器,这里写下aop运用中的日志问题.

既然要说aop,那么帮我巩固下知识,aop编程是面向切面的编程,aop的8个基本概念:连接点,切入点,关注点,切面,目标对象,通知,aop代理,植入.
下面一一介绍,并且以hibernate加spring事务举例:
连接点:代表程序执行过程中特定的方法,如果对事务的的话就是逻辑层中的具体方法.
切入点:连接点的集合,这个是逻辑层的所有方法.
关注点:程序员锁关注的共性,这个应该是aop配置总切面的expression中的东西吧.
切面:是切入点的集合,是所有模块逻辑层的方法的集合
关注对象:包含了连接点的对象
通知:关注点的实现.具体功能的实现
aop代理:把功能回帖到目标对象,具体功能的实现
植入:实现aop声明的功能.具体功能的实现

我觉着最后的三个是没有必要分的,嘿嘿!

接着说下通知,分为5种,
before:方法执行器前
after:执行后
after-return:成功执行
after-throwing:执行失败
around:这个功能是最全的,包括执行前和执行后

代码玩玩,applicationContext.xml中的配置:

<!--声明bean实例-->
<bean id="myAdvice" class="com.javakc.aop.MyAdvice"> </bean> 
<!--配置aop-->
<aop:config> 
    <!--作为myAdvice的切面-->
    <aop:aspect ref="myAdvice"> 
    <!--切入点,expression是关注的对象-->
    <aop:pointcut id="kc" expression="execution(* com.javakc..*.*Servlet.*())"/> 
    <!--通知,代理-->
    <aop:around pointcut-ref="kc" method="addLog"/> </aop:aspect> 
</aop:config>

举例执行代码:

public class MyAdvice { 
   Logger log=Logger.getLogger(MyAdvice.class); 
    public Object addLog(ProceedingJoinPoint pjp){ log.info(pjp.METHOD_CALL); 
    Object retVal=pjp.proceed(); 
    return retVal; 
  } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值