netty整合spring

我这里的整合其实就是为了能在handler类里使用@Autowired注入业务service。

参考

https://github.com/zbum/netty-spring-example

这个例子整合的思路就是把ServerBootstrap等一些需要new的,使用@Configuration+@Bean来替代。

悲惨的是,整合完了,我却有了新的疑惑,基础不行啊我。贴出部分代码,
我的疑惑就是下面这段代码中使用构造函数,来注入了WSServerInitialzer这个类,构造函数上也没有使用@Autowired注解,为啥没问题呢???查了半天,有说是因为从Spring4.3开始,如果类仅有一个构造函数,可以不写@Autowired。而且spring官方推荐使用@Autowired在构造函数上

@Configuration
@RequiredArgsConstructor
@EnableConfigurationProperties(NettyProperties.class)
public class NettyConfig {

    private final NettyProperties nettyProperties;

    private final WSServerInitialzer serverInitialzer;

    @Bean
    public ServerBootstrap serverBootstrap() {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup(),workerGroup())
                .channel(NioServerSocketChannel.class)
                /**
                 * ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,
                 * 函数listen(int socketfd,int backlog)用来初始化服务端可连接队列,
                 * 服务端处理客户端连接请求是顺序处理的,所以同一时间只能处理一个客户端连接,
                 * 多个客户端来的时候,服务端将不能处理的客户端连接请求放在队列中等待处理,backlog参数指定了队列的大小
                 */
                .option(ChannelOption.SO_BACKLOG, nettyProperties.getBacklog())
                .handler(new LoggingHandler(LogLevel.DEBUG))    //日志
                .childHandler(serverInitialzer);    //  自定义handler
        return b;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 参考W3C Spring教程 Spring致力于J2EE应用的各种解决方案,而不仅仅专注于某一层解决方案。可以说S...
    王侦阅读 4,884评论 0 6
  • 如下是整篇文章的结构,所需阅读时间大约20min Spring简介 Spring框架由Rod Johnson开发,...
    逆风飞行1226阅读 4,410评论 0 15
  • Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB...
    OSET我要编程阅读 7,582评论 0 3
  • 正院的后面是三分薄地 里头植了梨树、杏树 还有死去的桑树 蚕,我好些年都不养了 杏,也好些年没吃到过了 梨,奶奶每...
    马宝强阅读 1,306评论 0 0
  • 昨天晚上做完作业开始练字,我顺口问嘉旭是不是又发脾气了?他说能不能不问这个问题,我一听就知道肯定又出幺蛾子了。...
    jiaxu0216阅读 1,297评论 0 0

友情链接更多精彩内容