apache mina 学习(十四)-----与spring整合

原创 2012年03月21日 15:49:57

mina与spring整合的主要问题就是mina中一些bean的配置需要spring的ioc,我们首先看一个简单的服务端代码:

public void initialize() throws IOException {

	// Create an Acceptor
	NioDatagramAcceptor acceptor = new NioDatagramAcceptor();

	// Add Handler
	acceptor.setHandler(new ServerHandler());

	acceptor.getFilterChain().addLast("logging",
				new LoggingFilter());
	acceptor.getFilterChain().addLast("codec",
				new ProtocolCodecFilter(new SNMPCodecFactory()));

	// Create Session Configuration
	DatagramSessionConfig dcfg = acceptor.getSessionConfig();
        dcfg.setReuseAddress(true);
        logger.debug("Starting Server......");
        // Bind and be ready to listen
        acceptor.bind(new InetSocketAddress(DEFAULT_PORT));
        logger.debug("Server listening on "+DEFAULT_PORT);
}
整合步骤一般有三步:1、设置io handler 2、创建filters 3、创建socket

spring中设置iohandler:

<!-- The IoHandler implementation -->
  <bean id="trapHandler" class="com.ashishpaliwal.udp.mina.server.ServerHandler" />
Filters:

<bean id="snmpCodecFilter" class="org.apache.mina.filter.codec.ProtocolCodecFilter">
    <constructor-arg>
      <bean class="com.ashishpaliwal.udp.mina.snmp.SNMPCodecFactory" />
    </constructor-arg>
  </bean>

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

  <!-- The filter chain. -->
  <bean id="filterChainBuilder" class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">
    <property name="filters">
      <map>
        <entry key="loggingFilter" value-ref="loggingFilter"/>
        <entry key="codecFilter" value-ref="snmpCodecFilter"/>
      </map>
    </property>
  </bean>

我们用的是基于构造方法的注入方式,最后我们注入socket:

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
    <property name="customEditors">
      <map>
        <entry key="java.net.SocketAddress">
          <bean class="org.apache.mina.integration.beans.InetSocketAddressEditor" />
        </entry>
      </map>
    </property>
 </bean>

<!-- The IoAcceptor which binds to port 161 -->
<bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioDatagramAcceptor" init-method="bind" destroy-method="unbind">
    <property name="defaultLocalAddress" value=":161" />
    <property name="handler" ref="trapHandler" />
    <property name="filterChainBuilder" ref="filterChainBuilder" />
</bean>
这样我们可以在spring容器中获得mina的服务器实例了:

public void initializeViaSpring() throws Exception {
    new ClassPathXmlApplicationContext("trapReceiverContext.xml");
}



Spring-mybaits-mina整合,可监听多端口

  • 2017年01月23日 14:32
  • 8.69MB
  • 下载

spring Mina 整合,多端口绑定spring.xml配置

-->                                                                              1000              ...
  • oHaHaChao
  • oHaHaChao
  • 2015年12月15日 17:32
  • 1131

mina在spring中的配置多个端口

本次练习中是监听2个端口 applicationContext-mina.xml:   http://www.springframework.org/dtd/spring-beans.d...
  • qq545923664
  • qq545923664
  • 2014年03月05日 16:49
  • 5388

Spring-mybaits-mina整合,启动多端口监听

Spring-mybaits-mina三大框架的整合,mina可以使用Spring的数据库数据库连接池,无需额外定义mybaits连接池。 不想看博客的话,项目完整下载地址:http://downl...
  • j506825719
  • j506825719
  • 2017年01月23日 14:16
  • 1245

Mina入门教程(二)----Spring4 集成Mina

在spring和mina集成的时候,要十分注意一个问题:版本。 这是一个非常严重的问题,mina官网的demo没错,网上很多网友总结的代码也是对的,但是很多人将mina集成到spring中的时候,总...
  • u013444177
  • u013444177
  • 2016年08月01日 16:48
  • 537

Mina框架学习笔记(六)

高级话题在前面章节中介绍了 Apache MINA 的基本概念和具体用法,下面讨论一些高级话题。异步操作Apache MINA 中的很多操作都是异步的,比如连接的建立、连接的关闭、还有数据的发送等。在...
  • lingyb011
  • lingyb011
  • 2010年10月12日 19:51
  • 9757

Mina集成到Spring

原文地址:Apache Mina ch17-spring-integration 本文演示了将Spring集成MINA应用。我写这篇文章在我的博客上,虽然放在这里,实际上这些信息属于博客空间。可...
  • boonya
  • boonya
  • 2016年07月14日 13:48
  • 2728

spring集成mina,包含心跳检测,实现服务端主动推送

服务端1.常规的spring工程集成nima时,pom.xml中需要加入如下配置: org.slf4j slf4j-jdk14 1.7.7 ...
  • smile326
  • smile326
  • 2016年07月14日 20:26
  • 15364

spring整合mina开发web项目和简单mina客户端的使用

场景要求在web项目中使用mina与一些客户端通讯。一、maven引包
  • ihchenchen
  • ihchenchen
  • 2017年04月08日 13:39
  • 2913

Apache MINA框架整合到Spring框架中

Apache MINA、Spring、安卓客户端、通信
  • y_chengyong
  • y_chengyong
  • 2014年07月07日 16:44
  • 2927
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apache mina 学习(十四)-----与spring整合
举报原因:
原因补充:

(最多只允许输入30个字)