No código a seguir, um bean MvcRequestMatcher.Builder é registrado com o contexto do aplicativo.
@Bean
MvcRequestMatcher.Builder mvc(HandlerMappingIntrospector introspector) {
return new MvcRequestMatcher.Builder(introspector);
}
o método pega um parâmetro introspector que é um bean autowired. Minha pergunta é, já que não é um construtor nem um setter, e não há nenhuma anotação @Autowired, que tipo de injeção é?
É chamado de injeção de método. Você pode usá-lo na configuração de beans na classe @Configuration, ele dá mais flexibilidade e deixa claro quais dependências são necessárias para métodos específicos. Você também pode usá-lo quando uma dependência não é sempre necessária e só deve ser injetada sob certas condições, como esta: