Escolar Documentos
Profissional Documentos
Cultura Documentos
Testes Unitários e de Integração: O Spring oferece suporte para testes, incluindo testes
unitários e de integração. Use ferramentas como JUnit e Mockito.
Criando projetos com Spring
Spring Boot:
● Use o Spring Initializer para gerar um projeto Spring
Boot com as dependências necessárias.
● Defina as configurações do aplicativo em
application.properties ou application.yml.
● Crie classes anotadas com @RestController para expor
endpoints da API.
● Execute o aplicativo usando o main método.
Criando projetos com Spring
Spring MVC:
● Anote as classes de controle com @Controller.
● Use @RequestMapping para mapear URLs para métodos de controle.
● Configure os modelos e visões (normalmente HTML ou Thymeleaf).
● Configure o Dispatcher Servlet no arquivo de configuração.
Criando projetos com Spring
● O Spring permite que você defina objetos DTO para representar os dados que precisa transferir entre diferentes camadas da
aplicação, como a camada de controle e a camada de serviço, ou entre a camada de serviço e a camada de acesso a dados
(repositórios).
Operações de Mapeamento:
● Em muitos casos, você precisa realizar operações de mapeamento para converter dados entre objetos de entidade (ou
modelos de domínio) e objetos DTO. O Spring oferece flexibilidade para realizar essas operações de mapeamento
manualmente ou usando bibliotecas como o ModelMapper ou o MapStruct.
DTO no Spring
Controller para View (Resposta HTTP):
○ Ao criar aplicativos da web usando Spring MVC, os controladores podem retornar objetos
DTO como parte da resposta HTTP. Esses objetos DTO são frequentemente serializados
em formatos como JSON ou XML para comunicação com o cliente (navegador).
@RestController
@GetMapping("/exemplo")
}
DTO no Spring
Requisições do Cliente para o Controller:
○ Quando o cliente (navegador ou outro aplicativo) envia dados para o controlador Spring, esses dados são frequentemente mapeados
para objetos DTO antes de serem processados. Isso pode simplificar a validação e a manipulação dos dados da solicitação.
@RestController
@PostMapping("/exemplo")
return ResponseEntity.status(HttpStatus.CREATED).build();
}
DTO no Spring
Redução de Sobrecarga na Comunicação:
○ DTOs também são úteis quando você deseja reduzir a sobrecarga na comunicação entre as camadas. Em vez de
transferir todos os detalhes dos objetos de entidade, você pode selecionar apenas os campos relevantes para um DTO
específico.
Customização de Respostas:
○ O uso de DTOs permite personalizar as respostas enviadas aos clientes. Você pode incluir ou excluir campos
específicos de acordo com as necessidades de cada endpoint.
Anotações no Spring
O Spring Framework fornece uma ampla variedade de anotações que são usadas para configurar e personalizar o comportamento de
componentes e classes em um aplicativo Spring. Abaixo, vou explicar algumas das anotações mais comuns e amplamente utilizadas
no Spring. Lembre-se de que a lista a seguir não é exaustiva, pois o Spring oferece muitas outras anotações especializadas para
cenários específicos.
@Component é a anotação raiz para definir um componente gerenciado pelo Spring. Componentes anotados com @Controller,
@Service, ou @Repository são subtipos de @Component com semântica específica.
@Configuration:
Essa anotação é usada para marcar uma classe como uma classe de configuração. Classes de configuração definem beans
gerenciados pelo Spring e são frequentemente usadas em conjunto com @Bean.
Anotações no Spring
@Bean:
● Usado em métodos dentro de classes anotadas com @Configuration, @Bean define um método que cria e configura um bean
gerenciado pelo Spring.
@Autowired:
● Essa anotação é usada para injetar dependências automaticamente. Pode ser usada em campos, construtores e métodos.
@Qualifier:
● Usado em conjunto com @Autowired para especificar qual bean deve ser injetado quando existem várias implementações de
um mesmo tipo.
Anotações no Spring
@Value:
● Permite injetar valores diretamente em propriedades de beans a partir de um arquivo de propriedades ou do arquivo de
configuração do Spring.
@Scope:
● Define o escopo do bean, controlando quantas instâncias do bean são criadas e gerenciadas pelo Spring.
@PostConstruct e @PreDestroy:
● Essas anotações são usadas para marcar métodos de inicialização e destruição de um bean, permitindo que você execute
ações personalizadas nessas fases do ciclo de vida do bean.
Anotações no Spring
@RequestMapping e Anotações Relacionadas (para Spring MVC):
Essas anotações são usadas em métodos de controladores para mapear URLs para métodos de tratamento de requisições
HTTP. Isso inclui @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, etc.
@PathVariable:
● Usada para mapear parâmetros de consulta da URL para parâmetros em métodos de controladores.
@RequestBody:
● Usada para mapear o corpo de uma requisição HTTP para um parâmetro em um método de controlador.
@ResponseBody:
● Usada para marcar um método de controlador que retorna dados que devem ser serializados e enviados como resposta
HTTP.
Anotações no Spring
@Valid e @Validated:
● Usadas para ativar a validação de dados com base em anotações, como @NotNull, @Size, etc., em argumentos de métodos
em controladores.
@ExceptionHandler:
● Usada para tratar exceções específicas dentro de controladores, permitindo a personalização do tratamento de erros.
Anotações no Spring
@RestController:
● Essa anotação combina @Controller e @ResponseBody, indicando que a classe é um controlador que retorna dados
diretamente no corpo da resposta HTTP.
@Transactional:
● Usada para marcar métodos ou classes para configuração de transações. O Spring gerenciará automaticamente o início e o
commit de transações.
@CrossOrigin:
● Usada para configurar políticas de compartilhamento de recursos entre origens diferentes em aplicativos da web.