При создании экземпляра RestTemplate с помощью метода restTemplate ()
Я попытался изменить имя аргумента на строителя. Это работает.
Это работает, потому что, по умолчанию, пружинный autowire's по типу. Таким образом, он ищет бин с типом RestTemplateBuilder
и находит его, и, следовательно, без ошибок.
При создании экземпляра RestTemplate с помощью метода restTemplate ()
Я попытался изменить название метода на случайный, и я получил
исключение, что «недоступен бин с именем restTemplate».
Вы получаете исключение не потому, что вы изменили имя метода, а из-за этого
ctx.getBean("restTemplate")
Поскольку по умолчанию @Bean
использует имя метода в качестве имени компонента. ( отметьте это ). Таким образом, имя bean-компонента типа RestTemplate, которое возвращается вашим случайным методом, является именем вашего случайного метода. Следовательно, когда вы пытаетесь получить бин с именем restTemplate
, он выдает исключение.
Но если бы вы использовали Autowire для bean-компонента типа RestTemplate, он все равно работал бы, потому что Spring по умолчанию будет выполнять Autowire по типу и ему известен bean-компонент типа RestTemplate (имя в качестве случайного имени метода).