springboot项目@Value无法获取值的问题

前言

该解决思路只是其中一种情况,根据个人情况测试

代码

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;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值