前言
该解决思路只是其中一种情况,根据个人情况测试
代码
1.心跳检测,为了检测数据库连接,需要使用@Value获取配置文件中的值
package com.ruoyi.common.config;
import org.apache.commons.net.telnet.TelnetClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class HeartBeat {
private static final Logger logger = LoggerFactory.getLogger(HeartBeat.class);
@Value("${heartbeat.ip}")
private String ip;
@Value("${heartbeat.port}")
private String port;
/**
* 数据库心跳检测
*/
public boolean databaseHeartBeatCheck() {
String hostIPaddr = ip;
int hostPort = Integer.valueOf(port);
TelnetClient telnetClient = new TelnetClient();
telnetClient.setDefaultTimeout(3000);
try {
telnetClient.connect(hostIPaddr, hostPort);
} catch (Exception e) {
logger.error("数据库----->>>" + hostIPaddr + "心跳检测异常!");
return false;
}
logger.info("数据库----->>>" + hostIPaddr + "心跳检测正常!");
return true;
}
}
2.配置文件内容yml
heartbeat:
ip: 192.168.0.102
port: 1521
3.现象
当使用
HeartBeat ss=new HeartBeat()
ss.databaseHeartBeatCheck();
new 对象方式时,debug发现
解决:使用注入的方式
@Autowired
HeartBeat heartBeat;