AeroflexVirtualBoxConfiguration.java 1.62 KB
package com.example.mina.config;

import com.example.mina.box1.AeroflexVirtualBoxHandler;
import com.example.mina.property.AeroflexVirtualProperties;
import lombok.extern.slf4j.Slf4j;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;
import java.net.InetSocketAddress;

/**
 * @author 杜云山
 * @date 21/03/05
 */
@Slf4j
@Configuration(proxyBeanMethods = false)
public class AeroflexVirtualBoxConfiguration {

    private final AeroflexVirtualProperties aeroflexVirtualProperties;

    public AeroflexVirtualBoxConfiguration(AeroflexVirtualProperties aeroflexVirtualProperties) {
        this.aeroflexVirtualProperties = aeroflexVirtualProperties;
    }

    @PostConstruct
    public void init() {

        if (!aeroflexVirtualProperties.getEnable()) {
            log.info("AeroflexVirtual服务端 配置未开启");
            return;
        }

        if (aeroflexVirtualProperties.getPort() == null) {
            log.info("AeroflexVirtual服务端 端口未配置");
            return;
        }

        try {
            NioSocketAcceptor acceptor = new NioSocketAcceptor();
            acceptor.setHandler(new AeroflexVirtualBoxHandler());
            acceptor.setReuseAddress(true);
            acceptor.bind(new InetSocketAddress(aeroflexVirtualProperties.getPort()));
            log.info("AeroflexVirtual服务端已经启动,监听端口: {}", aeroflexVirtualProperties.getPort());
        } catch (Exception e) {
            log.error("无法启动AeroflexVirtual服务端, {}", e.getMessage(), e);
        }
    }

}