В моем приложении mvc Spring, вызывающем следующий метод, при нажатии кнопки «Сохранить» на странице jsp.Как вызвать метод после завершения первой транзакции весной mvc
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute("user") @Valid User u,
BindingResult result, @ModelAttribute("category") UserCategory uc,
BindingResult resultCat, Model model, RedirectAttributes reDctModel) {
this.userService.addUser(u); // adding new user to DB
reDctModel.addFlashAttribute("msgSucess","Successfully saved..!");
this.sendEmail(u.getUsr_email(),"RDMS","Login Details"); // For sending mail
return "redirect:/users";
}
public String sendEmail(String recipientAddress,String subject,String message) {
// creates a simple e-mail object
SimpleMailMessage email = new SimpleMailMessage();
email.setTo(recipientAddress);
email.setSubject(subject);
email.setText(message);
// sends the e-mail
this.mailSender.send(email);
return "Result";
}
Это мой ApplicationContext
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="[email protected]" />
<property name="password" value="********" />
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
Выпуск, после добавления SendEmail(), она занимает около 15 секунд, чтобы сохранить новый record.Before добавления этого метода принимает только 1 second.Can кто-нибудь поможет мне уменьшить медленность программы или вызвать sendEmail() после завершения первой транзакции. Спасибо заранее.
добавить без Синхронной системы для отправки электронной почты, как очереди сообщений JMS –
вы можете использовать метод SendEmail как асинхронный с использованием весенней аннотации @Async – tcharaf
Но электронная почта будет отправлена, даже если экономия не удалась. –