Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo almacenar propiedades en el patrón singleton de Spring MVC

Cómo almacenar propiedades en el patrón singleton de Spring MVC

Los controladores Spring MVC son singleton de forma predeterminada:

Hay dos razones para usar singletons:

1.

2. No hay necesidad de múltiples instancias.

1. No es necesario decir tonterías. No es necesario crear una nueva instancia única cada vez y, por supuesto, es más rápido.

2. La falta de una instancia confundirá a muchas personas, porque el funcionario de Spring MVC no dice claramente que no se permiten múltiples instancias.

La razón por la que digo no aquí es porque depende del desarrollador usarlo. Si define una gran cantidad de propiedades para un controlador, definitivamente habrá competencia por el acceso a una sola instancia.

Por lo tanto, mientras el controlador no defina propiedades, el singleton es completamente seguro. Aquí tienes un ejemplo:

1

2

3

4

5

6

7

8

9

10

11

12

13

14 privado estático int st = 0; //estático

privado int index = 0 //no estático

@RequestMapping("/show")

public String toShow(ModelMap model) {

Usuario usuario = new User();

usuario.setUserName ("testuname");

user.setAge("23");

model.put("usuario", usuario);

return "/ lsh/ch5/show";

}

@RequestMapping("/test")

public String test() {

System.out.println(st " | " index ) )

Devuelve "/lsh/ch5/test";

}

}

0 | 0

1 | 1

2

3

4

Reemplazado con singleton:

0 |p>

1

2 | p>

4 | 0

Se puede ver que los singleton no son seguros y provocarán el uso repetido de atributos.

Mejores prácticas:

1. No defina variables miembro en el controlador.

2. En caso de que deba definir una variable miembro no estática, configúrela en modo de instancia múltiple anotando @Scope("prototipo").