package com.ard.work.component.forest; import com.ard.work.domain.entity.ArdServerInfo; import com.ard.work.service.IArdServerInfoService; import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Slf4j @Component public class MyAddressSource implements AddressSource { @Resource private IArdServerInfoService ardServerService; @Override public ForestAddress getAddress(ForestRequest request) { String serverKey = request.varAsString("serverId"); if(serverKey == null){ log.warn("请求属性serverId为空"); return null; } ArdServerInfo serverInfo = ardServerService.selectArdServerInfoById(serverKey); if(serverInfo == null){ log.warn("边缘服务器不存在"); return null; } // 返回 Forest 地址对象 return new ForestAddress(serverInfo.getHost(), serverInfo.getHttpPort()); } }