Warum hat Spring Class JDBCDAOSUPPORT, aber keine Analagous Class JMSSupport?
-
26-10-2019 - |
Frage
Warum das Federgerüst Klasse haben JdbcDaoSupport
das erfordert a DataSource
und schafft a JdbcTemplate
intern, hat aber keine analagöse Klasse JmsSupport
das könnte a erfordern JMS ConnectionFactory
und erstellen a JmsTemplate
?
Wie ich verstehe, der Zweck der Klasse JdbcDaoSupport
ist, redundante Fälle von zu beseitigen JdbcTemplate
(eins pro DataSource
Instanz) in einem Anwendungskontext. Stattdessen erstellt der Container Instanzen einer Anwendung DAO, von denen jeder abgeleitet ist JdbcDaoSupport
, akzeptiert eine einzigartige DataSource
und liefert dies DataSource
zum JdbcDaoSupport
Elterninstanz, die sie wiederum für die interne liefert JmsTemplate
.
Warum nicht Frühling eine analoge Klasse bietet JmsSupport
Das würde dazu dienen, die Anzahl der Anzahl zu verringern JmsTemplate
Instanzen in einem Anwendungskontext?
Lösung
JdbcDaoSupport
ist kaum mehr als ein Benutzer von a JdbcTemplate
Das erstreckt sich auch DaoSupport
. Es bietet eine Basisimplementierung des DAO -Designmusters für JDBC, wie es andere Klassen für Hibernate, JPA und andere tun.
Viele Leute benutzen das Dao -Paradigma nicht; Stattdessen definieren sie einen Singleton JdbcTemplate
dass sie direkt in ihre Serviceschicht einspritzen.
Für JMS gibt es - soweit ich weiß - kein generisches Designmuster wie das DAO, und es gibt keine anderen möglichen Variationen auf "einem Benutzer von JmsTemplate
". Sie sollten einen Singleton verwenden JmsTemplate
: Es steckt nichts mehr.