问题:启动SpringBootApplication导致Controller失效
解决方案1:使用任务调度,延迟调度创建socket方法
@Configuration
@EnableScheduling
public class ScheduleTask {
@Autowired
ServerSocketConfig serverSocketConfig;
// 添加定时任务(5s)
@Scheduled(cron = "0/5 * * * * ?")
private void myTasks() {
if(!ServerSocketConfig.isRun){
System.out.println("定时任务执行 " + LocalDateTime.now());
serverSocketConfig.socketCreate();
}else{
System.out.println("定时任务已启动" + LocalDateTime.now());
}
}
}
解决方案2:在SpringBootApplication执行完bean注入后,再注入需要的bean
public static void main(String[] args) {
SpringApplication.run(SpringBootFrameApplication.class, args);
// 手动注入bean
ServerSocketConfig serverSocketConfig = new ServerSocketConfig();
serverSocketConfig.socketCreate();
}