@Autowired. Meu código funciona e não sei como

eu aprendi que ao usar @Autowired é a mesma coisa que dizer

= new “Objeto()”

Eu estou usando o JavaMail e a minha classe está assim:

@Service
public class EmailService {

private JavaMailSender javaMailSender;

@Autowired
public EmailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void EnviarEmailDeConfirmacao(String email, String hashConfirmacao) {
SimpleMailMessage mail = new SimpleMailMessage();
mail.setTo(email);
mail.setFrom("sistema@cursodejavagratuito.com");
mail.setSubject(“testanto”);
mail.setText(“este e um email teste”);
javaMailSender.send(mail);
}
}

e na classe que chamo ele eu declaro ele assim:

@Autowired
EmailService emailService;

e já saio usando ele:

emailService.EnviarEmailDeConfirmacao(email, hashConfirmacao);

Na classe EmailService tem um cronstrutor que pede como parametro uma instancia de JavaMailSender
Em lugar nenhum eu passe essa instancia, nem sei onde que isso fica
E o pior é que funciona!!!
mas como? pq meu construtor pede uma instancia e eu não passei ela

Talvez vc entenda com este artigo:

1 curtida

Obrigado, entendi bem agora