From a0211dd6ff1ac7818208ff346e1c15d0c399e550 Mon Sep 17 00:00:00 2001 From: 杜云山 <870666625@qq.com> Date: Sat, 6 Mar 2021 11:25:45 +0800 Subject: [PATCH] feat: 抽取properties及configuration --- src/main/java/com/example/mina/config/AbstractVirtualBoxConfiguration.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java | 34 ++-------------------------------- src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java | 35 ++--------------------------------- src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java | 20 ++++++++++++++++++++ src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java | 6 +----- src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java | 6 +----- src/main/resources/application.yml | 2 ++ 7 files changed, 84 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/example/mina/config/AbstractVirtualBoxConfiguration.java create mode 100644 src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java diff --git a/src/main/java/com/example/mina/config/AbstractVirtualBoxConfiguration.java b/src/main/java/com/example/mina/config/AbstractVirtualBoxConfiguration.java new file mode 100644 index 0000000..2ccd3b1 --- /dev/null +++ b/src/main/java/com/example/mina/config/AbstractVirtualBoxConfiguration.java @@ -0,0 +1,56 @@ +package com.example.mina.config; + +import com.example.mina.base.AbstractVirtualBoxHandler; +import com.example.mina.property.AbstractVirtualBoxProperties; +import lombok.extern.slf4j.Slf4j; +import org.apache.mina.transport.socket.nio.NioSocketAcceptor; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; + +import java.net.InetSocketAddress; + +/** + * @author 杜云山 + * @date 21/03/05 + */ +@Slf4j +public class AbstractVirtualBoxConfiguration implements ApplicationRunner { + + private final AbstractVirtualBoxProperties abstractVirtualBoxProperties; + + private final AbstractVirtualBoxHandler abstractVirtualBoxHandler; + + public AbstractVirtualBoxConfiguration(AbstractVirtualBoxProperties abstractVirtualBoxProperties, + AbstractVirtualBoxHandler abstractVirtualBoxHandler) { + this.abstractVirtualBoxProperties = abstractVirtualBoxProperties; + this.abstractVirtualBoxHandler = abstractVirtualBoxHandler; + } + + @Override + public void run(ApplicationArguments args) { + + String name = abstractVirtualBoxProperties.getName(); + Integer port = abstractVirtualBoxProperties.getPort(); + + if (!abstractVirtualBoxProperties.getEnable()) { + log.info("{}服务端 配置未开启", name); + return; + } + + if (port == null) { + log.info("{}服务端 端口未配置", name); + return; + } + + try { + NioSocketAcceptor acceptor = new NioSocketAcceptor(); + acceptor.setHandler(abstractVirtualBoxHandler); + acceptor.setReuseAddress(true); + acceptor.bind(new InetSocketAddress(port)); + log.info("{}服务端已经启动,监听端口: {}", name, port); + } catch (Exception e) { + log.error("无法启动{}服务端, {}", name, e.getMessage(), e); + } + } + +} diff --git a/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java b/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java index b299e6c..f8e883f 100644 --- a/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java +++ b/src/main/java/com/example/mina/config/AeroflexVirtualBoxConfiguration.java @@ -3,48 +3,18 @@ package com.example.mina.config; import com.example.mina.box1.AeroflexVirtualBoxHandler; import com.example.mina.property.AeroflexVirtualBoxProperties; 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 AeroflexVirtualBoxProperties aeroflexVirtualBoxProperties; +public class AeroflexVirtualBoxConfiguration extends AbstractVirtualBoxConfiguration { public AeroflexVirtualBoxConfiguration(AeroflexVirtualBoxProperties aeroflexVirtualBoxProperties) { - this.aeroflexVirtualBoxProperties = aeroflexVirtualBoxProperties; - } - - @PostConstruct - public void init() { - - if (!aeroflexVirtualBoxProperties.getEnable()) { - log.info("AeroflexVirtual服务端 配置未开启"); - return; - } - - if (aeroflexVirtualBoxProperties.getPort() == null) { - log.info("AeroflexVirtual服务端 端口未配置"); - return; - } - - try { - NioSocketAcceptor acceptor = new NioSocketAcceptor(); - acceptor.setHandler(new AeroflexVirtualBoxHandler()); - acceptor.setReuseAddress(true); - acceptor.bind(new InetSocketAddress(aeroflexVirtualBoxProperties.getPort())); - log.info("AeroflexVirtual服务端已经启动,监听端口: {}", aeroflexVirtualBoxProperties.getPort()); - } catch (Exception e) { - log.error("无法启动AeroflexVirtual服务端, {}", e.getMessage(), e); - } + super(aeroflexVirtualBoxProperties, new AeroflexVirtualBoxHandler()); } } diff --git a/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java b/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java index 222e02a..27ed04f 100644 --- a/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java +++ b/src/main/java/com/example/mina/config/Rbm3000VirtualBoxConfiguration.java @@ -3,49 +3,18 @@ package com.example.mina.config; import com.example.mina.box1.Rbm3000VirtualBoxHander; import com.example.mina.property.Rbm3000VitualBoxProperties; 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 Rbm3000VirtualBoxConfiguration { - - private final Rbm3000VitualBoxProperties rbm3000VitualBoxProperties; +public class Rbm3000VirtualBoxConfiguration extends AbstractVirtualBoxConfiguration { public Rbm3000VirtualBoxConfiguration(Rbm3000VitualBoxProperties rbm3000VitualBoxProperties) { - this.rbm3000VitualBoxProperties = rbm3000VitualBoxProperties; - } - - - @PostConstruct - public void init() { - - if (!rbm3000VitualBoxProperties.getEnable()) { - log.info("Rbm3000Virtual服务端 配置未开启"); - return; - } - - if (rbm3000VitualBoxProperties.getPort() == null) { - log.info("Rbm3000Virtual服务端 端口未配置"); - return; - } - - try { - NioSocketAcceptor acceptor = new NioSocketAcceptor(); - acceptor.setHandler(new Rbm3000VirtualBoxHander()); - acceptor.setReuseAddress(true); - acceptor.bind(new InetSocketAddress(rbm3000VitualBoxProperties.getPort())); - log.info("Rbm3000Virtual服务端已经启动,监听端口: {}", rbm3000VitualBoxProperties.getPort()); - } catch (Exception e) { - log.error("无法启动Rbm3000Virtual服务端, {}", e.getMessage(), e); - } + super(rbm3000VitualBoxProperties, new Rbm3000VirtualBoxHander()); } } diff --git a/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java b/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java new file mode 100644 index 0000000..7c18dda --- /dev/null +++ b/src/main/java/com/example/mina/property/AbstractVirtualBoxProperties.java @@ -0,0 +1,20 @@ +package com.example.mina.property; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author 杜云山 + * @date 2021/03/05 + */ +@Getter +@Setter +public abstract class AbstractVirtualBoxProperties { + + protected String name = ""; + + protected Boolean enable = false; + + protected Integer port = null; + +} \ No newline at end of file diff --git a/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java b/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java index 57f38b0..2c84714 100644 --- a/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java +++ b/src/main/java/com/example/mina/property/AeroflexVirtualBoxProperties.java @@ -17,10 +17,6 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "aeroflex-virtual") @Configuration @EnableConfigurationProperties(AeroflexVirtualBoxProperties.class) -public class AeroflexVirtualBoxProperties { - - private Boolean enable = false; - - private Integer port = null; +public class AeroflexVirtualBoxProperties extends AbstractVirtualBoxProperties { } \ No newline at end of file diff --git a/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java b/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java index 26937dd..0087296 100644 --- a/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java +++ b/src/main/java/com/example/mina/property/Rbm3000VitualBoxProperties.java @@ -17,10 +17,6 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "rbm3000-vitualbox-virtual") @Configuration @EnableConfigurationProperties(Rbm3000VitualBoxProperties.class) -public class Rbm3000VitualBoxProperties { - - private Boolean enable = false; - - private Integer port = null; +public class Rbm3000VitualBoxProperties extends AbstractVirtualBoxProperties { } \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 34116b8..f5400a5 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,8 @@ aeroflex-virtual: + name: aeroflex-virtual enable: true port: 9100 rbm3000-vitualbox-virtual: + name: rbm3000-vitualbox-virtual enable: true port: 9101 -- libgit2 0.21.2