Assinale a opção que apresenta a anotação que define no framework Spring uma classe como pertencente à camada de persistência.
- A)@Repository
@Repository é a anotação correta para indicar uma classe da camada de persistência no Spring.
- B)@Component
@Component é genérica e marca um bean gerenciado pelo Spring, mas não identifica especificamente a camada de persistência.
- C)@Service
@Service indica a camada de serviço, normalmente ligada à regra de negócio, não à persistência.
- D)@Transient
@Transient é usada para impedir o mapeamento de um atributo na persistência, não para classificar a classe.
- E)@Autowired
@Autowired é usada para injeção de dependência, não para definir a camada da classe.
Gabarito: A
No Spring, as anotações de estereótipo servem para marcar o papel de uma classe dentro da aplicação. Isso ajuda o framework a identificar, organizar e fazer o gerenciamento dos componentes automaticamente, o famoso "contêiner cuidar de mais coisa que você". Quando a questão fala em camada de persistência, a anotação clássica é a que indica classes responsáveis pelo acesso a dados, como repositórios e DAOs. É exatamente por isso que o gabarito é a alternativa A: @Repository é a anotação usada para indicar essa camada e ainda traduz exceções de persistência para a hierarquia de exceções do Spring, quando aplicável. As outras anotações parecem familiares, mas cada uma tem um papel diferente. @Component é mais genérica, @Service aponta para a camada de serviço, @Transient é usada para ignorar um atributo na persistência, e @Autowired serve para injeção de dependência, não para classificar a classe por camada. Em prova, a banca costuma explorar essa diferença entre estereótipo genérico e estereótipo específico. Então, se a pergunta falar em persistência, pense em repositório; se falar em serviço, pense em regra de negócio; e se falar em objeto que o Spring deve injetar, aí entra a autowiring.