¿Por qué la primavera tiene clase JDBCDAOSUPPORT, pero no hay una clase analítica JMSSPPORT?
-
26-10-2019 - |
Pregunta
¿Por qué hace el Marco de primavera tengo clase JdbcDaoSupport
que requiere un DataSource
y crea un JdbcTemplate
internamente, pero no tiene una clase anática JmsSupport
que podría requerir un JMS ConnectionFactory
y crear un JmsTemplate
?
Como entiendo, el propósito de la clase JdbcDaoSupport
es eliminar instancias redundantes de JdbcTemplate
(uno por DataSource
instancia) en un contexto de aplicación. En cambio, el contenedor crea instancias de una aplicación DAO, cada una de las cuales deriva de JdbcDaoSupport
, acepta un único DataSource
y proporciona esto DataSource
hacia JdbcDaoSupport
instancia principal que a su vez lo proporciona a su interno JmsTemplate
.
¿Por qué la primavera no proporciona una clase análoga? JmsSupport
que serviría para reducir el número de JmsTemplate
instancias en un contexto de aplicación?
Solución
JdbcDaoSupport
es poco más que un usuario de un JdbcTemplate
que también se extiende DaoSupport
. Proporciona una implementación base del patrón de diseño DAO para JDBC, como lo hacen otras clases para Hibernate, JPA y otros.
Mucha gente no usa el paradigma DAO; en cambio, definen un singleton JdbcTemplate
que inyectan directamente en su capa de servicio.
Para JMS, hay, hasta donde yo sé, ningún patrón de diseño genérico como el DAO, y no hay otras posibles variaciones en "un usuario de JmsTemplate
". Deberías usar un singleton JmsTemplate
: No hay nada más.