Ho il seguente codice di controllo utilizzando SpringMVC:In strato SpringMVC Controller, @Scope ("prototipo") vs @Scope ("Singleton")
@Controller
@Scope("prototype")
@RequestMapping("/messages")
public class MessageController {
@RequestMapping(value="/index", method=RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public String displayAllMessages(ModelMap model) {
System.out.println(this.hashCode());
// processing
return "messages";
}
}
Quando l'uso @Scope("prototype")
, ogni richiesta viene, l'output di this.hashCode()
sono diversi, il che significa che quando ogni richiesta arriva, verrà creata una nuova istanza MessageController
.
Se non utilizzare @Scope("prototype")
, predefinito sarà @Scope("singleton")
, ogni richiesta arriva, l'uscita del this.hashCode()
è stesso, cioè viene creato un solo MessageController
istanza.
Non sono sicuro quando è necessario utilizzare @Scope("prototype")
, quando no?
Sono un po 'bloccato con lo stesso problema. Puoi per favore guardare nella mia domanda? http://stackoverflow.com/questions/43868299/how-to-reload-configuration-bean-with-properties-from-database – Lucky