SeaSar2之系统拦截器-yellowcong

在Seasar2的系统中,给我们提供了不少的拦截器,但是实际上,这些系统提供的拦截器,我们自己用的,比较少,但是S2Dao中的org.seasar.dao.pager.PagerS2DaoInterceptorWrapper,这个拦截器,用得还是比较多的

Dao包的拦截器

配置一个拦截器链,这个dao.interceptor,表示的是调用源码包下(s2-dao-1.0.50.jar)的dao.dicon配置下面的interceptor组建

  <!-- DAO Interceptor Chain -->
  <component name="daoChain" class="org.seasar.framework.aop.interceptors.InterceptorChain">
    <!-- 调用dao.dicon下的interceport拦截器, -->
    <initMethod name="add"><arg>dao.interceptor</arg></initMethod>
  </component>

这里写图片描述

dao.dicon配置文件
简单来说,我们最终织入到Dao的拦截器是org.seasar.dao.pager.PagerS2DaoInterceptorWrapper

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components21.dtd">
<components namespace="dao">
    <include path="j2ee.dicon"/>
    <component class="org.seasar.dao.impl.AnnotationReaderFactoryImpl"/>
    <component class="org.seasar.dao.impl.DaoMetaDataFactoryImpl"/>
    <component  name="interceptor" class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
        <arg>
            <component class="org.seasar.dao.interceptors.S2DaoInterceptor"/>
        </arg>
    </component>
    <component class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>
    <component name="stringClobType"> 
        @org.seasar.dao.types.ValueTypes@CLOB
    </component>
    <component class="org.seasar.dao.impl.BeanMetaDataFactoryImpl"/>
    <component class="org.seasar.dao.impl.DaoNamingConventionImpl"/>
    <component class="org.seasar.dao.impl.NullBeanEnhancer"/>
    <component class="org.seasar.dao.impl.ResultSetHandlerFactorySelector"/>
    <component class="org.seasar.dao.impl.DtoMetaDataFactoryImpl"/>
    <component class="org.seasar.dao.impl.PropertyTypeFactoryBuilderImpl"/>
    <component class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl"/>
    <component class="org.seasar.dao.impl.DefaultTableNaming"/>
    <component class="org.seasar.dao.impl.DefaultColumnNaming"/>
    <component class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl"/>
</components>

织入拦截器

自动织入到Dao的配置中
Seasar2的Dao比较的简单,而且操作基本上就是一个接口加上SQL语句,就完成了Dao包的配置

      <!-- ==================================================================== -->
      <!-- Aspect Auto Register -->
      <!-- ==================================================================== -->

      <!-- S2Dao Interceptor Auto Register -->
      <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
        <property name="interceptor">daoChain</property>
        <initMethod name="addClassPattern" >
          <arg>"com.yellowcong.dao"</arg>
          <arg>".*Dao"</arg>
        </initMethod>
      </component>

系统环境下的拦截器

s2-framework-2.4.12的目录下,有一个aop.dicon配置文件,里面写了一堆的aop

这里写图片描述

aop.xml配置文件
这个配置文件里面,也是一堆的aop,不过我们需要简单了解一下,各个aop的作用就行了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd">
<components namespace="aop">
    <component name="traceInterceptor" class="org.seasar.framework.aop.interceptors.TraceInterceptor"/>
    <component name="classLoaderAwareTraceInterceptor" class="org.seasar.framework.aop.interceptors.ClassLoaderAwareTraceInterceptor"/>
    <component name="simpleTraceInterceptor" class="org.seasar.framework.aop.interceptors.SimpleTraceInterceptor"/>
    <component name="syncInterceptor" class="org.seasar.framework.aop.interceptors.SyncInterceptor"/>
    <component name="traceThrowsInterceptor" class="org.seasar.framework.aop.interceptors.TraceThrowsInterceptor"/>
    <component name="lifecycleAdapter" class="org.seasar.framework.aop.interceptors.InterceptorLifecycleAdapter"/>
    <component name="toStringInterceptor" class="org.seasar.framework.aop.interceptors.ToStringInterceptor"/>
    <component name="removeSessionInterceptor" instance="prototype" class="org.seasar.framework.aop.interceptors.RemoveSessionInterceptor"/>

    <component name="propertyInterType" class="org.seasar.framework.aop.intertype.PropertyInterType">
        <property name="trace">true</property>
    </component>
</components>

转载于:https://my.oschina.net/u/1987703/blog/1617646

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值