Sono attualmente in procinto di aggiungere Spring e Hibernate a un'applicazione esistente, ma dopo aver letto un sacco di tutorial ci sono ancora un paio (alias un sacco di cose) che sembrano strani a me o mi manca qualcosa ...Spring - Tutorial vs Real Life
Tutte le esercitazioni che ho trovato sono semplici (come dovrebbe essere la maggior parte dei tutorial), come visto su Esempio A, un controller per gestire le richieste (JSP o WS) e autorizzare la classe manager per interagire con il DB.
Nel mio caso questo non si applica, poiché l'applicazione ha una classe per gestire le richieste, quindi istanzia una classe gestore, che a sua volta crea una nuova classe per gestire qualcos'altro che crea una nuova classe da gestire (....) * e quindi gestisce la connessione al database come visto su Esempio B.
mia domanda è come posso fare il mio logica Business Class n"Springable", cioè, in grado di fare un gestore di database autowired all'interno di esso?
Da tutti gli esempi che ho visto, mi è venuta in mente queste alternative:
- Creare l'autowire a ALL la DBManager interno del regolatore, e quindi CIO di tutto il business Classi fino a raggiungere la classe Business Logic n. Questo avrebbe seguito con gli standard di primavera, ma implicherebbe la maggior parte del codice di refactoring
- Transform TUTTI le classi Business Logic in fagioli
- Aggiungere SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext (questo); alla classe Business Logic n e utilizzare il @Autowire per accedere al DBManager
mi sto perdendo qualcosa o c'è qualche altra alternativa?
Dal mio punto di vista, l'approccio migliore (o corretto) sarebbe l'alternativa 2. Trasformare tutte le classi di accesso di logica e dati aziendali in bean di primavera ('@ Service' e' Repository') e invece di creare le istanze nel codice, configurare la molla per iniettare questi fagioli ovunque sia necessario. Potresti voler usare il tag 'component-scan', invece che il verbose XML, per far conoscere e gestire in anticipo questi bean. –