源地址:http://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html

一个mina应用主要包括一下方面:

  • One Handler
  • Two Filter - Logging Filter and a ProtocolCodec Filter
  • NioDatagram Socket

一个mina 服务端的实例程序如下:

public void initialize() throws IOException {// Create an AcceptorNioDatagramAcceptor acceptor = new NioDatagramAcceptor();// Add Handleracceptor.setHandler(new ServerHandler());acceptor.getFilterChain().addLast("logging",new LoggingFilter());acceptor.getFilterChain().addLast("codec",new ProtocolCodecFilter(new SNMPCodecFactory()));// Create Session ConfigurationDatagramSessionConfig dcfg = acceptor.getSessionConfig();dcfg.setReuseAddress(true);logger.debug("Starting Server......");// Bind and be ready to listenacceptor.bind(new InetSocketAddress(DEFAULT_PORT));logger.debug("Server listening on "+DEFAULT_PORT);
}

继承过程如下:

1.设置IO handler。在spring context文件中设置IO handler。

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

2.创建过滤器链。

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

3.创建socket并设置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>

测试程序

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

转载于:https://www.cnblogs.com/davidwang456/archive/2013/04/04/2999283.html

mina与spring集成(翻译)相关推荐

  1. spring集成mina 实现消息推送以及转发

    spring集成mina: 在学习mina这块时,在网上找了很多资料,只有一些demo,只能实现客户端向服务端发送消息.建立长连接之类.但是实际上在项目中,并不简单实现这些,还有业务逻辑之类的处理以及 ...

  2. spring 集成 mina入门

    一.applicationContent.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  3. spring集成mq_使用Spring Integration Java DSL与Rabbit MQ集成

    spring集成mq 我最近参加了在拉斯维加斯举行的2016年Spring大会 ,很幸运地看到了我在软件世界中长期敬佩的一些人. 我亲自遇到了其中的两个人,他们实际上合并了几年前我与Spring In ...

  4. Spring集成基础知识

    本文是我们名为" EAI的Spring集成 "的学院课程的一部分. 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们. 接下来,您将深 ...

  5. 通过Spring集成进行消息处理

    Spring Integration提供了Spring框架的扩展,以支持著名的企业集成模式. 它在基于Spring的应用程序中启用轻量级消息传递,并支持与外部系统的集成. Spring Integra ...

  6. spring集成jndi_Spring应用程序与JNDI连接池的集成测试

    spring集成jndi 我们都知道,无论何时连接到数据库,都需要使用连接池. 所有使用JDBC 4类的现代驱动程序都支持它. 在本文中,我们将概述Spring应用程序中的连接池,以及如何在非JEE环 ...

  7. jersey spring_实施Jersey 2 Spring集成

    jersey spring Jersey是Oracle提供的出色的Java JAX-RS规范参考实现. 去年,当我们开始为大容量网站构建RESTful后端Web服务时,我们选择使用JAX-RS API ...

  8. apache camel_轻量级的开源集成:Apache Camel还是Spring集成?

    apache camel 首先,为全面披露信息,在过去的1.5年中, 我一直担任 FuseSource(现为Red Hat) 的顾问,为零售,运输,银行/金融等不同行业的大型和小型公司提供SOA和集成 ...

  9. 将Quartz与Spring集成

    在Java应用程序中调度作业时,Quartz是第一个考虑的工具. Quartz是由最流行的RDBMS支持的作业调度程序. 这真的很方便,并且很容易与spring集成. 为了创建石英模式,您必须下载石英 ...

最新文章

  1. java 如何解密_java加密与解密
  2. 判断iframe是否加载完毕的方法(兼容ie和Firefox)
  3. 熵的基础知识,特征工程,特征归一化,交叉验证,grid search,模型存储与加载
  4. RNN调试错误:lstm_cell = tf.contrib.rnn.core_rnn_cell.BasicLSTMCell(lstm_size) 方法已失效
  5. 看了500个人的面经:我发现混的好的程序员,都在用这个数据库!
  6. Cloudera Certified Associate Administrator案例之Install篇
  7. maven 配置远程仓库服务器密码
  8. Ubuntu 安装 gcc-4.9.3-64-gnu
  9. 三星530换固态硬盘_速度与安全在指尖跳跃 三星移动固态硬盘T7 Touch评测
  10. 毕业设计资料python RCQ读者书库程序源码加文档
  11. pdf文件过大怎样压缩?pdf文件如何压缩到指定大小?
  12. html5自动换行,html5文字自动换行怎么设置
  13. web前端课程设计(HTML和CSS实现餐饮美食文化网站)静态HTML网页制作
  14. Jetson Xavier NX系统安装至 nvme 硬盘
  15. Alarmmanager制作简单闹钟功能
  16. ftp工具,ftp工具专业版
  17. 手机android怎么开机画面,安卓开机动画特效软件下载
  18. Microsoft office 2007 word PPT 转pdf的插件
  19. 论 Erda 的安全之道
  20. 中台战略-读书笔记5

热门文章

  1. mysql的编译_Mysql编译安装
  2. Qt中的基础图形绘制
  3. android 判断按钮是否已经有onclicklinstener,通过点击事件监听setOnClickListener彻底理解回调...
  4. dnf强化卷代码_DNF:夏日套时装礼盒开服竟卖八千万金币,500万捡漏到黄金书
  5. 谷歌市场上架aab安装包的各种坑
  6. 根据网络状态获取Ip地址
  7. C++输入输出类的层次
  8. torch 的 unsqueeze用法
  9. kali安装步骤失败 选择并安装软件_Pycharm2019.3.3软件安装步骤
  10. 93. Leetcode 64. 最小路径和 (动态规划-路径规划)