springboot热部署重启后报错容器有问题

先说下我的情况:

若依的不分离版springboot项目,有热部署。

然后我写了个类,专门监听其它服务器推送过来的消息,进行数据库更新操作。

手动重启,一切正常。但是当我修改某个类文件保存后热部署生效,直接自动重启

这个时候就有问题了,当再监听到有消息来的时候,就报错了。。。。

nested exception is java.lang.IllegalStateException: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@602ec673 has been closed already

这个是我写的类,系统一启动就自动运行

@Component
public class WarnlampAliiotAmqp implements CommandLineRunner{

    private final static Logger logger = LoggerFactory.getLogger(WarnlampAliiotAmqp.class);

    //业务处理异步线程池,线程池参数可以根据您的业务特点调整,或者您也可以用其他异步方式处理接收到的消息。
    private final static ExecutorService executorService = new ThreadPoolExecutor(
        Runtime.getRuntime().availableProcessors(),
        Runtime.getRuntime().availableProcessors() * 2, 60, TimeUnit.SECONDS,
        new LinkedBlockingQueue<>(50000));

    @Override
    public void run(String... args) throws Exception {

                我在run方法了,是用的SpringUtils.getBean(XXX.class);得到业务对象,进行操作

        }

}

网上有说,容器关闭重启,SpringUtils.getBean还是获取以前的容器,所以报错,我真不太懂,希望大神们指点一下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值