Mam następujący kod kontrolera używając SpringMVC:W warstwie SpringMVC Controller, @Scope ("prototyp") 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";
}
}
Kiedy użycie @Scope("prototype")
każde żądanie pochodzi, wyjście this.hashCode()
są różne, co oznacza, że po każdym żądaniu zostanie utworzona nowa instancja MessageController
.
Jeśli nie używać @Scope("prototype")
, domyślnie będzie @Scope("singleton")
każde żądanie pochodzi, wyjście this.hashCode()
są takie same, co oznacza tylko jedno MessageController
instancja jest tworzona.
Nie jestem pewien, kiedy należy użyć @Scope("prototype")
, kiedy nie?
Trochę utknąłem z tym samym problemem. Czy możesz zajrzeć do mojego pytania? http://stackoverflow.com/questions/43868299/how-to-reload-configuration-bean-with-properties- from-database – Lucky