如何在Spring框架中实现UDP

Sun*_*her 2 java spring udp

我用spring框架实现了一个web应用程序.现在我需要一个udp服务器来接收来自客户端(Android设备)的传入消息.如何将此功能添加到基于Spring的项目中?谢谢.

Fra*_*lis 6

如果您想使用TCP和UDP支持Spring集成,supponing您刚刚收到UDP报文,做一些与该消息时,应按照以下步骤:

创建消息使用者

package com.example.udp;

import org.springframework.messaging.Message;

public class UDPConsumer {

    @Autowire what you want, this will be a Spring Bean

    @ServiceActivator
    public void consume(Message message) {
         ... do something with message ...
    }
}
Run Code Online (Sandbox Code Playgroud)

可选:使用某些属性创建udp-server.properties

udp-server.threads=10
udp-server.port=4000
udp-server.buffer-size=500
...
Run Code Online (Sandbox Code Playgroud)

创建配置文件

<?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:int="http://www.springframework.org/schema/integration"
    xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
    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
        http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
        http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd">

    <context:property-placeholder location="classpath:udp-server.properties" />

    <bean id="udpConsumer" class="com.example.udp.UDPConsumer" />

    <int:channel id="inputChannel">
        <int:queue />
    </int:channel>

    <int-ip:udp-inbound-channel-adapter id="udpReceiver"
        channel="inputChannel"
        port="${udp-server.port}"
        pool-size="${udp-server.threads}"
        receive-buffer-size="${udp-server.buffer-size}"
        multicast="false"
        check-length="true"/>

    <int:service-activator input-channel="inputChannel"
        ref="udpConsumer" />

    <int:poller default="true" fixed-rate="500" />

</beans>
Run Code Online (Sandbox Code Playgroud)

注意:Spring Integration有许多有趣的功能,如消息路由和转换.我建议您准确查看官方文档.