【发布时间】:2021-04-13 00:11:55
【问题描述】:
大家好,有一个问题,我的 bean 执行了两次,我不明白为什么。我是 Spring Boot 的新手,恐怕这与滥用注释有关。
package com.Alfa.controllers;
import com.Alfa.tools.JsonParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.io.FileNotFoundException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Map;
@SpringBootApplication
@Controller
public class MainController {
private final RankClient rank;
private final GifClient gifClient;
@Autowired
public MainController(RankClient rank, GifClient gifClient) {
this.rank = rank;
this.gifClient = gifClient;
}
@GetMapping("/{currency}")
public String getGif(@PathVariable String currency, Model model) {
JsonParser jsonParser=new JsonParser();
System.out.println(currency);
boolean res = jsonParser.isRankHigherToday(rank.getYesterdayJson(getYesterdayDate(), currency).getBody(), rank.getJson(currency).getBody());
Map gif;
if (res == false) gif = gifClient.getBrokeGif().getBody();
else gif = gifClient.getRichGif().getBody();
gif = (Map) gif.get("data");
gif = (Map) gif.get("images");
gif = (Map) gif.get("downsized_large");
String GifSrc = (String) gif.get("url");
model.addAttribute("src", GifSrc);
return "index";
}
private String getYesterdayDate() {
final Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(cal.getTime());
}
}
@FeignClient(name = "RankClient", url = "${feign.client.rank.url}")
interface RankClient {
@RequestMapping(method = RequestMethod.GET, value = "${feign.client.rank.json.latest}"+"${feign.client.rank.token}&base={currency}")
ResponseEntity<Map> getJson(@PathVariable("currency") String currency);
@RequestMapping(method = RequestMethod.GET, value = "${feign.client.rank.json.historical}" +
"{date}" + "${feign.client.rank.json.historical.end}" + "${feign.client.rank.token}&base={currency}")
ResponseEntity<Map> getYesterdayJson(@PathVariable("date") String date, @PathVariable("currency") String currency);
}
@FeignClient(name = "GifClient", url = "${feign.client.gif.url}")
interface GifClient {
@RequestMapping(method = RequestMethod.GET, value = "${feign.client.gif.token}" + "${feign.client.gif.tag.broke}")
ResponseEntity<Map> getBrokeGif();
@RequestMapping(method = RequestMethod.GET, value = "${feign.client.gif.token}" + "${feign.client.gif.tag.rich}")
ResponseEntity<Map> getRichGif();
}
System.out.println(currency); 在我的例子中返回两个值,第一个是我需要的,然后返回 favicon。 ico。
我不知道 favicon.ico 来自哪里,并想了解我做错了什么。
【问题讨论】:
-
您在使用浏览器吗?它将向
/favicon.ico发出请求,以检索用于在选项卡、书签列表等中表示您的网站的图标。 -
@AndyWilkinson ,嗯,我应该忽略错误的执行吗?
标签: java spring-boot web model-view-controller mapping