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