Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Relação de injeção com chamada de método.

Olá! Tenho a seguinte dúvida:

Como que o Spring relaciona esse Bean :

    @Override
    @Bean
    protected AuthenticationManager authenticationManager() throws Exception
    {
        return super.authenticationManager();
    }

Com a seguinte injeção na outra classe:

    @Autowired
    private AuthenticationManager authManager;
2 respostas
solução!

A anotação @Bean informa para o Spring que um AuthenticationManager deve ser instanciado e gerenciado pelo seu container. Assim quando é feito o @Autowired, a gente informa ao container do Spring que aquele bean deve ser injetado aqui.

É uma forma de inversão de controle por meio de injeção de dependência. Todo gerenciamento da dependência fica a cargo do container do Spring. Assim podemos definir as dependências por meio do Autowired sem ser necessário criá-las, o Spring faz isso pra gente.

Quando se usa o Autowired, ele procura por @Beans que possuem aquele determinado tipo, caso haja beans de mesmo tipo, pode-se usar o @Qualifier para distinguir entre um e outro.

Agora ficou claro, muito obrigado, Rodrigo!