Pregunta

es indudable que un dao no tendrá ningún estado.

sin embargo, para un acceso más fácil a la clase, ¿es mejor usar prototype (= nuevo cada vez) o singleton?

la creación de objetos simples es barata para los de dao. Por lo general, solo contiene una información de sesión, acceder al objeto desde una lista de singletons puede ser igualmente costoso.

aclaración: el foco de esta pregunta es, si existe una convención común para el alcance de los daos.

¿Fue útil?

Solución

Si su pregunta es sobre arquitectura , iría con los DAO de alcance a la Unidad de trabajo o la Transacción que está realizando. Esto reduce el potencial de contaminación de transacción cruzada y problemas de subprocesos .

Si su pregunta es sobre rendimiento , la respuesta se encuentra dentro de un generador de perfiles , lo que le proporciona números precisos para su particular carga de trabajo .

Otros consejos

O use prototipo en combinación con un grupo como se describe aquí:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop-api.html#aop-ts-pool

O aquí:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/classic-aop-spring.html#classic-aop-ts-pool

EDITAR: obviamente, asumo que la primavera se usa aquí. De lo contrario me disculpo

he llegado a la conclusión de que no hay " perfecto " Manera de decidir esto. El alcance de Singleton es probablemente la forma incorrecta de hacerlo en una aplicación web, ya que tendrá diferentes sesiones, una por solicitud. por lo tanto, en una aplicación web, el alcance de la solicitud puede ser la respuesta correcta, pero solo si lo está utilizando exclusivamente en solicitudes y no en tareas en segundo plano. El alcance del prototipo es viable, pero solo si no tiene datos complejos allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top