使用 ApplicationRunner 这个类来对项目启动后做一些初始化的工作
如:项目启动后,连接websorcek
实现ApplicationRunner的run方法, 在项目启动后, 会自动执行run方法中的内容
package com.diting.hb2.fastdevlop.commons.util;
import com.alibaba.fastjson.JSONObject;
import com.diting.hb2.fastdevlop.commons.cache.DatacodeCache;
import com.diting.hb2.fastdevlop.config.MyWebSocketClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.DependsOn;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@Component
public class JDDRunner implements ApplicationRunner {
@Autowired
RestTemplate restTemplate;
// @Autowired
// MyWebSocketClient myWebSocketClient;
private static final Logger logger = LoggerFactory.getLogger(JDDRunner.class);
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(args);
System.out.println("springboot项目启动后执行如下内容:");
DatacodeCache obj = (DatacodeCache)SpringUtil.getBean("datacodeCache");
Map map = obj.initCacheMap();
System.out.println("-------------------------------初始化系统编码完成-----------------------------------");
try
{
MyWebSocketClient myWebSocketClient = new MyWebSocketClient();
ResponseEntity<JSONObject> result = restTemplate.getForEntity("http://xxxxxxxxxxxxxxxxx" , JSONObject.class);
String str = result.getBody().get("data").toString();
System.out.println(str);
logger.info(str);
String url = "http://xxxxxxxxxxxx" + str;
myWebSocketClient.createClient(url);
logger.info("----------------项目启动后连接 ws 成功---------------");
}
catch (Exception e)
{
logger.info("----------------连接websocker超时---------------");
}
}
}