碼是什麼,我的問題是關於:CommandLineRunner和豆類(春季)
@SpringBootApplication
public class Application {
private static final Logger log = LoggerFactory.getLogger(Application.class);
public static void main(String args[]) {
SpringApplication.run(Application.class);
}
@Bean
public Object test(RestTemplate restTemplate) {
Quote quote = restTemplate.getForObject(
"http://gturnquist-quoters.cfapps.io/api/random", Quote.class);
log.info(quote.toString());
return new Random();
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}
@Bean
public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
return args -> {
Quote quote = restTemplate.getForObject(
"http://gturnquist-quoters.cfapps.io/api/random", Quote.class);
log.info(quote.toString());
};
}
}
我很新的春天。據我瞭解,@Bean註釋是負責將對象保存在IoC容器中,請糾正?
如果是這樣的話:首先收集@Bean的所有方法並執行然後執行?
在我的例子,我添加的方法測試()是什麼一樣的run(),但返回的對象(隨機())來代替。 結果與使用CommandLineRunner和Object時相同。
是否有一個原因,它應該返回CommandLineRunner即使用像奔跑的語法()?
此外:在這一點上我沒有看到,到目前爲止,移動的方法來一個集裝箱的優勢。爲什麼不直接執行它?
謝謝!