Spring @Autowire em Propriedades x Construtor

Portanto, desde que eu uso o Spring, se eu escrever um serviço com dependências, faria o seguinte:

@Component
public class SomeService {
     @Autowired private SomeOtherService someOtherService;
}

Agora, deparei-me com um código que usa outra convenção para alcançar o mesmo objetivo

@Component
public class SomeService {
    private final SomeOtherService someOtherService;

    @Autowired
    public SomeService(SomeOtherService someOtherService){
        this.someOtherService = someOtherService;
    }
}

Ambos os métodos vão funcionar, eu entendo isso. Mas existe alguma vantagem em usar a opção B? Para mim, ele cria mais código na classe e no teste de unidade. (Ter que escrever o construtor e não poder usar o @InjectMocks)

Tem algo que estou perdendo? Existe mais alguma coisa que o construtor conectado automaticamente além de adicionar código aos testes de unidade? Essa é a maneira mais preferida de fazer injeção de dependência?

questionAnswers(3)

yourAnswerToTheQuestion