文档章节

SeaSar2之系统拦截器-yellowcong

 天佑我儿
发布于 2018/02/02 17:18
字数 460
阅读 30
收藏 0

在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>

本文转载自:http://blog.csdn.net/yelllowcong/article/details/77834008

粉丝 2
博文 160
码字总数 0
作品 0
厦门
私信 提问
轻量级容器框架--Seasar2

所谓“Seasar2”就是一个“轻量级容器”,面向无法摆脱“Java 应用开发”之烦恼的所谓“开发者”,它能够保证开发的“高生产率和高品质”。并且同“其它轻量级容器”不同的是,“完全不需要书...

匿名
2010/12/15
1K
0
Shiro之CAS单点登录-yellowcong

配置单点登录,有点坑的是,我将Session存在了缓存中,导致我每次登录的时候,都不去cas验证中心,我就感觉很无语,后来将sessionManager删除后,就好用了,太坑了,这问题坑了一天多。实现C...

yelllowcong
2017/12/21
0
0
Shiro之拦截器的使用-yellowcong

第一种方式,就是写死在代码中的方式,第二种方式,是通过查询数据的方式,动态设定权限内容。第二种方式,在实际的工作中,用得比较的多 源码下载地址 https://gitee.com/yellowcong/shior...

yelllowcong
2017/12/17
0
0
CAS之5.2x版本之REST验证ticket(跨系统访问资源)-yellowcong

Cas中REST的方式来验证Ticket,这种场景是解决A系统需要访问B系统需要登录权限的资源的,并不是用来解决 登录问题,这点必须很清楚。我刚开始就是不明白这个,才被坑的。在这个里面会涉及到T...

yelllowcong
2018/02/08
0
0
struts2 拦截器

拦截器,作用是在执行方法执行,进行过滤拦截。 struts2 拦截器的几种方式 声明拦截器,然后在Action中引用声明的拦截器 默认拦截器,在当前package下有且只能有一个默认拦截器 作用:在当前p...

东方部落
2017/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

火焰图(flame graph)是性能分析利器

Perf命令 Perf 命令(performance的简写)是 Linux 系统原生提供的性能分析工具,返回 CPU 正在执行的函数名以及调用栈(stack)。 通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个...

呼呼南风
3分钟前
0
0
 好程序员大数据知识点精讲 大数据之Linux

好程序员大数据知识点精讲 大数据之Linux -Linux是什么? Linux是一套作业系统,不是应用程序Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。 Shell——命令行解...

好程序员IT
7分钟前
0
0
mysql 多行结合

select a1.email as email ,a1.bg ,IFNULL(a1.bg, a2.bg) from ( select * from test01 where sdate = '2019-09-11' ) a1 LEFT join (select * from test01 where sdate = '2019-09-10') a2 ......

昏鸦
9分钟前
0
0
Netflix Eureka 续约 & 更新注册表信息

Eureka Client 要定期的向 Eureka Server 发送心跳请求以保持续约的状态。 也需要定期的从 Eureka Server 获取服务注册表数据,并将服务注册表数据缓存在客户端实例内。 Eureka Client 续约 ...

BryceLoski
12分钟前
2
0
IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK

要想开发Java程序,就需要知道什么是JVM、JRE以及JDK。JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系。 1.J...

老码农的一亩三分地
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部