Perché è necessario utilizzare @service
all'interno del servizio Implementazione e @repository
nell'implementazione DAO. Non si verificano problemi quando interscambio l'annotazione @service
e @repository
nel MVC di primavera.Cosa succederà se scambiamo l'annotazione @service e @repository nella primavera MVC
risposta
Secondo documentaion@Repository
, @Service
, @Controller
sono tutti sinonimi. Sono tutte solo specializzazioni dell'annotazione @Component
. Quindi, generalmente, possono essere utilizzati l'uno di seguito all'altro. Ma ... non dovresti farlo.
Primo motivo: qualsiasi di queste annotazioni chiarisce il ruolo del componente nell'applicazione. Mostra: questo componente appartiene al controller, al servizio o al livello dati.
Seconda ragione: alcune di queste annotazioni sono state elaborate in modo diverso da diversi moduli Spring. Ad esempio, Spring Data JPA
elaborerà @Repository
e tenterà di sostituire con l'implementazione qualsiasi interfaccia contrassegnata da questo annotaione. Spring applicherà anche la traduzione automatica delle eccezioni a tali classi. Un altro esempio, il processo Spring Web MVC
@Controller
e utilizza le classi contrassegnate con esso nei mapping URL.
In realtà, nelle versioni future, alcuni moduli di Spring potrebbero elaborare @Service
in modo particolare. Non è così semplice @Component
. Ecco perché consiglio documentazione:
E 'anche possibile che @Repository, @Service, e @Controller possono portare semantica supplementari in future versioni di Spring Framework. Pertanto, se si sceglie di utilizzare @Component o @Service per il livello di servizio , @Service è chiaramente la scelta migliore.
Dipende da ciò che si utilizza per il resto del framework. In teoria, nulla cambia in quanto le annotazioni @Service
e @Repository
sono fondamentalmente le annotazioni @Component
. Lo stesso si può dire per @Controller
o @Endpoint
(per Spring Ws e ce ne sono altri).
Tuttavia esprimono un intento di cosa sia una classe (un servizio, un repository) e rende chiaro all'utente quale strato appartiene a tale classe.
Tuttavia, se si utilizza anche per la primavera managemnt transazione poi @Repository
è anche un trigger per adding exception translation a quella classe (vedi anche la reference guide).
Anche se lo è stato interrotto probabilmente lo sarà a un certo punto.
- 1. per cosa sono utilizzati @Repository e @Autowired. (Primavera)
- 2. Cosa succederà se la funzione ricorsiva è definita come inline?
- 3. Se non è stata chiarita la variabile ThreadLocal, cosa succederà?
- 4. Cosa succederà se un framework viene cancellato da un'app?
- 5. Service vs. Repository
- 6. ASP.NET MVC Software Design Pattern: DI, Repository, Service Layer
- 7. Cosa succederà quando overflow timestamp (rowversion)?
- 8. Autenticazione Android con Google OpenID. Cosa succederà?
- 9. ASP.NET MVC - Respository/Service/Controller
- 10. Che cosa è il contenitore nella struttura di primavera?
- 11. Cosa c'è di sbagliato con RabbitMQ nella primavera del Boot
- 12. Qual è la differenza tra come vengono elaborate le annotazioni @Component e @Repository/@Service?
- 13. confrontare repository vs provider vs service
- 14. Primavera JPA Repository query dinamica
- 15. Cosa succederà se Perl tenta di chiamare move() su un file che viene caricato?
- 16. In Java se un thread è stato ucciso, cosa succederà all'altro thread?
- 17. Pattern MVC 4 Autofac e Repository generico
- 18. cosa succederà se inseriamo in dinamo DB con una chiave hash duplicata?
- 19. Cosa succederà se il server implementa spdy/3 mentre il browser supporta solo spdy/2?
- 20. Cosa succederà se '&' non viene inserito in un'istruzione 'scanf' in C?
- 21. filtro nella primavera Data Query
- 22. Utilizzo di servizi e DAO nel controller mvc di primavera
- 23. servizio di test di livello nella MVC primavera utilizzando EasyMock
- 24. Primavera 3.0 MVC MVC: tag view-controller
- 25. Comprensione e uso di "Service Layers" - .NET MVC 5
- 26. Richiesto RequestMapping in primavera MVC
- 27. ajax nella sicurezza primavera
- 28. ExceptionHandler nella primavera
- 29. Come mix di primavera dati Repository e controllori di primavera riposo
- 30. modalità dev in primavera MVC
Questo probabilmente rovinerebbe le vostre transazioni. Un servizio deve passare transazioni che necessitano di propagazione al DAO. Entrambi sono componenti quindi la creazione di un bean non costituirà un problema. – TheLostMind