Middle
Koja je razlika između anotacija Repository, Component, Controller i Service u Spring-u?
sobes.tech АИ
Одговор од АИ
Ove anotacije su stereotipne anotacije za Spring komponente:
@Component: Osnovna anotacija za bilo koju komponentu koju upravlja Spring IoC kontejner. Pretpostavlja da je klasa opšti komponent aplikacije.@Repository: Specijalna anotacija za klase koje obavljaju operacije sa podacima (DAO). Spring pruža dodatne mogućnosti, kao što je automatski prevod JDBC izuzetaka u Spring DataAccessException.@Service: Specijalna anotacija za klase koje sadrže poslovnu logiku. Ukazuje da je klasa servis na nivou poslovne logike.@Controller: Specijalna anotacija za klase koje se koriste kao kontroleri u web sloju. Obično se koristi u Spring MVC za obradu dolaznih web zahteva.
Sve ove anotacije su meta-anotacije za @Component, što znači da će svaka klasa označena bilo kojom od njih biti smatrana od strane Spring-a kao komponenta. Glavna razlika leži u semantici i specijalizovanoj funkcionalnosti koju Spring može pružiti za svaku od njih.
// Primer korišćenja @Component
@Component
public class MyGenericComponent {
// opšta funkcionalnost
}
// Primer korišćenja @Repository
@Repository
public class UserRepository {
// operacije sa bazom podataka
}
// Primer korišćenja @Service
@Service
public class UserService {
// poslovna logika
}
// Primer korišćenja @Controller
@Controller
public class UserController {
// obrada web zahteva
}