java Spring Boot无法访问REST控制器
我有一个简单的问题——SpringBootApplication看不到我的控制器——更奇怪的是——只有三个控制器中的一个
我有UserController、WalletController和DashboardController——这一个在我的应用程序中不可见
我已经做的是:
- 带有控制器的每个包都在主包下,我的Springboot应用程序在主包下。班级是
- 我试着为Springboot应用程序注释main。使用BasePackage和BasePackageClass的组件扫描
- 没有其他bean——它们应该被注释为@Component,我删除了它们,并将方法移动到我的仪表板服务。班级
这是我的控制器,不可见: DashboardController
这是我的包结构(似乎是正确的):Package Structure
谢谢你的帮助
编辑:
使用第三方api获取所需数据可能很重要
在这种方法中,我使用url:
private String getNbpJson(String url) {
return new RestTemplate().getForObject(url, String.class);
}
private CurrentRateDTO getCurrentExchangeRate(String json) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
String code = node.get("code").toString();
String date = node.get("rates").get(0).get("effectiveDate").toString();
double bid = node.get("rates").get(0).get("bid").asDouble();
double ask = node.get("rates").get(0).get("ask").asDouble();
return new CurrentRateDTO(code, date, bid, ask);
}
然后在ExchangeService中,这是我的url
@Service
public class ExchangeRateService implements IExchangeRateService {
private static final Logger logger = LoggerFactory.getLogger(ExchangeRateService.class);
private String NBP_CURRENT_RATE_URL = "http://api.nbp.pl/api/exchangerates/rates/c/eur/2020-12-11/?format=json";
更重要的是。。。当我将方法从仪表板控制器移动到WalletController时(这很有效)
我发现的另一件事是,只有使用第三方api的方法不起作用。 基本上,我从上面的url检索数据——我获取特定字段,创建一个带有填充字段的对象
从第三方检索数据,然后在我的应用程序中实现,可能会有问题吗
我现在没有更多的想法
# 1 楼答案
也许您的控制器已注册,但您键入的url略有不同。试试这个属性
logging.level.org.springframework.web.servlet.mvc.method.annotation: TRACE
并在应用程序启动时检查控制器是否在其他url下注册
尝试将其添加到控制器中