J'ai une question à propos de l'annotation Spring @Async. J'ai un contrôleur autowired un service (GnInsuranceDetailsService)Spring @Async annotation
@RequestMapping(value="/agn/AP0W01A_010/insertDetail.do")
public ResponseEntity<?> insertDetail(@ModelAttribute("dto")GnInsuranceDetailsDTO dto,HttpSession session) throws Exception {
gnInsuranceDetailsDTO.setBkFlag(getAgnUserInfo(session).getBkFlag());
gnInsuranceDetailsService.insertGnInsuranceDetail(dto);//open another thread to insert data
MessageDTO dto = new MessageDTO(AgnConstant.INSERT_SUCCESS);
return new ResponseEntity<MessageDTO>(dto,HttpStatus.OK);// increase return time for client
}
Et la méthode de service insertGnInsuranceDetail Je déclare méthode @Async up.
@Transactional(readOnly = false)
@Async
public void insertGnInsuranceDetail(GnInsuranceDetailsDTO gnInsuranceDetailsDTO) throws Exception{
GnInsuranceDetails entity = gnInsuranceDetailsDTO.convert();
gnInsuranceDetailsDAO.save(detailsEntity);
}
Je mis la @Async pour la méthode de service pour augmenter le temps de réponse du contrôleur pour le côté client, mais il ne fonctionne pas comme je le pense. Est-ce que je perds quelque chose? Ou comment puis-je modifier de la manière la plus simple?
Hellow, @ kuhajeyan.I utiliser le code de test Thread. sleep (10000L) devant la méthode insertGnInsuranceDetail begin.but not work.Controller attendra> 10s pour que la méthode insertGnInsuranceDetail du service soit terminée. –
@HamiltonLin êtes-vous sûr que vous avez activé @ EnableAsync dans la configuration de @ Async pour fonctionner – kuhajeyan
Comment configurer cette config au printemps –