# Spring boot整合Netty
# @PostConstruct注解
@PostConstruct该注解被用来修饰一个非静态的void()方法。
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。
通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:
Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
@PostConstruct
public void start() throws InterruptedException {
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.localAddress(new InetSocketAddress(port))
//保持长连接
.childOption(ChannelOption.SO_KEEPALIVE, true)
//可以对入站\出站事件进行日志记录,从而方便我们进行问题排查
.handler(new LoggingHandler(LogLevel.DEBUG))
.childHandler(new NettyServerInitializer());
ChannelFuture channelFuture = bootstrap.bind().sync();//开启监听
if (channelFuture.isSuccess()) {
log.info("启动 Netty 服务端完成,端口: " + port);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# @PreDestroy注解
关闭spring容器后释放一些资源
@PreDestroy
public void destroy() throws InterruptedException {
bossGroup.shutdownGracefully().sync();
workerGroup.shutdownGracefully().sync();
}
1
2
3
4
5
2
3
4
5
← 处理器 ChannelOption配置 →