关于使用@PostConstruct注解并且方法内有死循环的时候,@Scheduled注解不会起作用的解决办法

您所在的位置:网站首页 kafka消费超时死循环 关于使用@PostConstruct注解并且方法内有死循环的时候,@Scheduled注解不会起作用的解决办法

关于使用@PostConstruct注解并且方法内有死循环的时候,@Scheduled注解不会起作用的解决办法

2024-07-03 20:22| 来源: 网络整理| 查看: 265

SpringBoot框架在使用的过程中,会用到很多注解,其中包括@PostConstruct(启动时执行)以及@Scheduled(定时器),

但是如果使用了@PostConstruct注解,并且方法体内包含死循环,为什么要死循环呢,因为我要监听socket通讯,所以要一直不断的执行,但是这个时候,程序启动时就不会扫描到定时器的注解,导致定时器无法执行,这个时候,可以把监听的方法写在AgvWebApplication.java中,并且实现CommandLineRunner接口,这样程序启动的时候,会自动执行循环,并且不会影响定时器的使用,一举两得。

public class AgvWebApplication implements CommandLineRunner{ public static void main(String[] args) { SpringApplication.run(AgvWebApplication.class, args); } @Override public void run(String[] args) { try (ServerSocket serverSocket = new ServerSocket(8083);) {//1创建服务端 log.info("服务端已启动,等待客户端连接.."); for (; ; ) { try { Socket socket = serverSocket.accept(); log.info("客户端加入,客户端IP[{}],端口号:[{}]",socket.getInetAddress(),socket.getPort()); SocketThread socketThread = new SocketThread(socket); socketThread.start(); } catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { log.info("error", e); } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3