Mina框架与Spring的整合事实上非常easy,主要是要弄清楚要注入的属性的名称,进而选择合适的注入方法。

关于Spring的四种注入方法请还有一篇文章:spring依赖注入的四种方式

<?xml version="1.0" encoding="UTF-8"?>

<beans  

    xmlns="http://www.springframework.org/schema/beans"  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xmlns:context="http://www.springframework.org/schema/context"  

    xsi:schemaLocation="http://www.springframework.org/schema/beans

     http://www.springframework.org/schema/beans/spring-beans.xsd  

     http://www.springframework.org/schema/context

     http://www.springframework.org/schema/context/spring-context.xsd">  

<!-- 业务处理逻辑 -->

    <bean id="handler" class="com.mina.handler.StrategyFactoryHandler" />

     

<!-- 累加数据包解码器:解断丢包、粘包问题 -->

<bean id="codec" class="org.apache.mina.filter.codec.ProtocolCodecFilter">

<constructor-arg>

<bean class="com.mina.codec.MyCodecFcatory">

<constructor-arg index="0">

<bean class="com.mina.codec.MyEncoder"></bean>

</constructor-arg>

<constructor-arg index="1">

<bean class="com.mina.codec.MyDecoder">

</bean>

</constructor-arg>



</bean>

</constructor-arg>

</bean>



    <!-- 多线程处理过滤器,为后面的操作开启多线程,一般放在编解码过滤器之后,開始业务逻辑处理 -->

    <bean id="executors" class="org.apache.mina.filter.executor.ExecutorFilter"/>

    <!-- Mina自带日志过滤器 默认级别为debug -->

    <bean id="loggerFilter" class="org.apache.mina.filter.logging.LoggingFilter">

    <property name="messageReceivedLogLevel" ref="info"></property>

    <property name="exceptionCaughtLogLevel" ref="info"></property>

    </bean>

    <!-- 枚举类型 依赖注入  须要先通过此类进行类型转换-->

    <bean id="info" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">    

        <property name="staticField" value="org.apache.mina.filter.logging.LogLevel.INFO" />    

    </bean>

    <bean id="filterChainBuilder" class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">  

 <property name="filters">  

   <map>

     <entry key="codec" value-ref="codec"/>

     <entry key="logger" value-ref="loggerFilter"/>

     <entry key="executors" value-ref="executors"/>

   </map>  

 </property>  

</bean>

<!-- 监听port -->

<bean id="defaultLocalAddress" class="java.net.InetSocketAddress">

<constructor-arg index="0" value="${tcpPort}"></constructor-arg>

</bean>

<!-- session config 通过工厂方法注入 -->

    <bean id="sessionConfig" factory-bean="ioAcceptor" factory-method="getSessionConfig" >

        <property name="readerIdleTime" value="10"/>

        <property name="minReadBufferSize" value="512"/>

        <property name="maxReadBufferSize" value="10240"/>

    </bean>

<bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"

init-method="bind" destroy-method="unbind">

<!-- 默认启用的线程个数是CPU 的核数+1, -->

 <!--<constructor-arg index="0" value="10"></constructor-arg>-->

 <property name="defaultLocalAddress" ref="defaultLocalAddress" />  

 <property name="handler" ref="handler" />  

 <property name="filterChainBuilder" ref="filterChainBuilder" />  

</bean>  

</beans>  

Mina框架与Spring整合配置文件的更多相关文章

  1. 1、Shiro 安全框架与Spring 整合详解

    Apache Shiro 是一个安全认证框架,和 Spring Security 相比,在于他使用了比较简洁易懂的认证和授权方式.其提供的 native-session(即把用户认证后的授权信息保存在 ...

  2. Maven环境下搭建SSH框架之Spring整合Hibernate

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...

  3. 8 -- 深入使用Spring -- 7...2 MVC框架与Spring整合的思考

    8.7.2 MVC 框架与Spring整合的思考 对于一个基于B/S架构的JAVA EE 应用而言,用户请求总是向MVC框架的控制器请求,而当控制器拦截到用户请求后,必须调用业务逻辑组件来处理用户请求 ...

  4. quartz任务调度框架与spring整合

    Quartz是什么? Quartz 是一种功能丰富的,开放源码的作业调度库,可以在几乎任何Java应用程序集成 - 从最小的独立的应用程序到规模最大电子商务系统.Quartz可以用来创建简单或复杂的日 ...

  5. Maven环境下搭建SSH框架之Spring整合Struts2

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Struts2:2.5.10 Spring:4.3.8.RELEASE 注意:其他版本在某些特性的使用上可能稍微存在差别 2.准备工作 ...

  6. 从0开始整合SSM框架--2.spring整合mybatis

    依赖:<properties> <!-- spring版本号 --> <spring.version>4.1.3.RELEASE</spring.versio ...

  7. shiro安全框架和spring整合

    上干货......... 整合spring的配置文件 <?xml version="1.0" encoding="UTF-8"?><beans ...

  8. ssh框架中spring整合hibernate的配置文件模板(带详细注释)

    applicationContext.xml的配置文件模板 <?xml version="1.0" encoding="UTF-8"?> <b ...

  9. ActiveMQ学习总结------Spring整合ActiveMQ 04

    通过前几篇的学习,相信大家已经对我们的ActiveMQ的原生操作已经有了个深刻的概念, 那么这篇文章就来带领大家一步一步学习下ActiveMQ结合Spring的实战操作 注:本文将省略一部分与Acti ...

随机推荐

  1. swift 新功能介绍

    原文链接:http://www.cocoachina.com/applenews/devnews/2014/0617/8857.html 假设你和我一样,准备好好看看苹果的 Keynote,兴奋地准备 ...

  2. linux解压多个文件

    方法很多种, 根据实际文件类型,位置情况进行变通: 1. for查询:for tar in *.tar.gz; do tar xvf $tar; done2. 列出文件列表,然后xargs 逐一解压: ...

  3. mongodb之java CRUD 简单操作

    我下载的是 mongo-2.8.0.jar — Version 2.8.0 打开mongo shell -- 新建数据库test --( use test) 打开eclipse新建工程,把junit, ...

  4. QT Programming 1

    1.控制台输出 helloworld #include<QtCore/QCoreApplication> #include<QDebug> int main(int argc, ...

  5. 修改linux系统时间、rtc时间以及时间同步

    修改linux的系统时间用date -s [MMDDhhmm[[CC]YY][.ss]] 但是系统重启就会从新和硬件时钟同步. 要想永久修改系统时间,就需要如下命令:hwclock hwclock - ...

  6. 跨平台移动框架iMAG开发入门

    iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次能够同一时候兼容Android和iOS平台,有点儿Web开发基础就能非常快上手.当前移动端跨平台开发的框架有非常多,但用iMAG另一个优点,就是 ...

  7. 询url包括字符串参数(js高度注意事项)

    以防万一  url="http://write.blog.csdn.net/postedit? id=5&search=ok" function getArgs() { v ...

  8. POJ 2250 Compromise (UVA 531)

    LCS问题.基金会DP. 我很伤心WA非常多.就在LCS问题,需要记录什么路. 反正自己的纪录path错误,最后,就容易上当. 没有优化,二维阵列,递归打印,cin.eof() 来识别 end of ...

  9. ICTCLAS用的字Lucene4.9捆绑

    它一直喜欢的搜索方向,虽然无法做到.但仍保持了狂热的份额.记得那个夏天.这间实验室.这一群人,一切都随风而逝.踏上新征程.我以前没有自己.面对七三分技术的商业环境,我选择了沉淀.社会是一个大机器,我们 ...

  10. CSS: 解决Div float后,父Div无法高度自适应的问题

    在用CSS+DIV的布局中,常常会发现,当一个DIV float之后,假设他的高度超过了其父DIV的高度时,其父DIV的高度并不会对应的进行调整.要解决问题(也叫做闭合(清除)浮动),我们有四种办法: ...