当前位置: 首页 > news >正文

Mina框架与Spring整合配置文件

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>  

相关文章:

  • OSGi 4.3引入了Generics与Capabilities
  • Django Web框架
  • DirectoryEntry的使用
  • 使用GZipStream类压缩和解压文件夹
  • mysql sql语句中用括号处理or和and的运算顺序
  • c#中WebBrowser控件使用心得
  • [转载]编写超级可读代码的15个最佳实践
  • 定时器NSTimer
  • 查看系统默认路径
  • 递归法求数组中的最大数
  • codeforces 190A Vasya and the Bus
  • nodejs一周动态(2011-04-25 - 05-01)
  • Cocos2d-x之物理世界(物体之间的碰撞)
  • 在CentOS安装配置OpenMeetings。
  • 随手记
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 08.Android之View事件问题
  • CEF与代理
  • css属性的继承、初识值、计算值、当前值、应用值
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • java多线程
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • ReactNative开发常用的三方模块
  • Web设计流程优化:网页效果图设计新思路
  • 代理模式
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用Swoole加速Laravel(正式环境中)
  • 新书推荐|Windows黑客编程技术详解
  • AI算硅基生命吗,为什么?
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​如何防止网络攻击?
  • (1)常见O(n^2)排序算法解析
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Dubbo快速入门、介绍、使用
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core引入性能分析引导优化
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .sh 的运行
  • @Mapper作用
  • @Resource和@Autowired的区别
  • @vue/cli 3.x+引入jQuery
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [04]Web前端进阶—JS伪数组
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C++基础]-初识模板
  • [CentOs7]图形界面
  • [C语言]一维数组二维数组的大小
  • [Golang]K-V存储引擎的学习 从零实现 (RoseDB mini版本)
  • [hdu2196]Computer树的直径
  • [LeetCode] Minimum Path Sum