java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 实现了ApplicationRunner但没有启动

实现了ApplicationRunner但没有启动解决方案

作者:程序猴周某

项目重构为多模块SpringBoot后,启动类位置不当导致NettyStartListener未被扫描,通过调整启动类到上一级包,解决了@Compment注解失效问题,使Netty启动功能正常运行

背景

项目结构重构,由原先的单模块SpringBoot项目改为多模块的SpringBoot项目,结构如图:

lcs和wms为两个业务模块,启动程序放在web模块中 

问题

NettyStartListener实现了ApplicationRunner,但服务启动后,netty服务没有一起启动

排查及解决

查询Spring源码,在图中所示处打了断点,但断点过后(会多次进入断点),runners中没有想要的 NettyStartListener 类。

由于项目之前是netty是可以成功启动的,所以怀疑是NettyStartListener上的@Compment没有生效,在网上查询,了解到:springboot默认扫描启动类同级包和同级的子包内容,查询项目包结构,发现启动类所在位置不对,如图:

而NettyStartListener所在位置为:

package org.springblade.tcp.server;

然后将启动程序移到上一级后,问题解决。

 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文