package demo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class TraceApplication {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(TraceApplication.class, args);
}
}
@RestController
class HomeController {
private static final Log log = LogFactory.getLog(HomeController.class);
@Autowired
private RestTemplate restTemplate;
@Value("${app.url:http://localhost:${local.server.port:${server.port:8080}}}")
private String url;
@RequestMapping("/")
public String home() {
log.info("Home");
String s = this.restTemplate.getForObject(url + "/hi", String.class);
return "hi/" + s;
}
}
@RestController
class HiController {
private static final Log log = LogFactory.getLog(HiController.class);
@RequestMapping("/hi")
public String hi() {
log.info("Hi");
return "hi";
}
}