Este é um exemplo de classe Java que utiliza o framework Spring Boot para criar um aplicativo web. A classe é chamada de "ApplicationTutorial" e está localizada no pacote "com.company.nomeprojeto". Abaixo segue a documentação dos componentes principais da classe:
A anotação @SpringBootApplication
é uma combinação de várias outras anotações do Spring, como
@Configuration
, @EnableAutoConfiguration
e @ComponentScan
. Ela indica que
a classe é uma classe de configuração do Spring Boot que permite habilitar recursos automáticos, como detecção
de classes e configuração automática de bancos de dados.
Este é o método principal da aplicação, responsável por iniciar o aplicativo. Ele recebe um array de argumentos
em String[] args
e chama o método
SpringApplication.run(ApplicationTutorial.class, args)
para iniciar a aplicação.
Este método estático é usado para iniciar a aplicação Spring Boot. Ele recebe como parâmetro a classe principal
da aplicação e os argumentos do método main()
. Quando executado, ele inicia um contêiner de
aplicativos e carrega todos os componentes necessários para a execução da aplicação.
O código representa uma classe Java chamada TarefasAPI, que implementa uma API RESTful para gerenciamento de
tarefas. Esta classe está localizada no pacote com.company.nomeprojeto.tarefas.api
. A seguir, serão
descritos os principais elementos dessa classe:
A anotação @Controller
é uma das anotações do Spring Framework que indica que a classe é um
controlador. O objetivo desta classe é gerenciar as solicitações HTTP e retornar as respostas adequadas.
A anotação @RequestMapping
é uma anotação do Spring que mapeia solicitações HTTP para métodos em
controladores específicos. Neste caso, ela mapeia todas as solicitações para /tarefas
. Além disso,
a anotação produces
é usada para indicar o tipo de mídia que o controlador produz, neste caso,
JSON.
A anotação @Autowired
é uma anotação do Spring que permite a injeção de dependência automática.
Neste caso, é usado para injetar uma instância de TarefasFacade
no controlador.
A anotação @PostMapping
é uma anotação do Spring que indica que o método trata solicitações HTTP
POST. Neste caso, o método criar
é acionado quando uma solicitação POST é feita para
/tarefas
. O parâmetro @RequestBody
indica que o método espera um corpo de solicitação
JSON que pode ser convertido em um objeto TarefaDTO.
A anotação @PutMapping
é uma anotação do Spring que indica que o método trata solicitações HTTP PUT.
Neste caso, o método atualizar
é acionado quando uma solicitação PUT é feita para
/tarefas/{tarefaId}
. O parâmetro @PathVariable
indica que o valor de
tarefaId
é passado na URL.
A anotação @GetMapping
é uma anotação do Spring que indica que o método trata solicitações HTTP GET.
Neste caso, o método getAll
é acionado quando uma solicitação GET é feita para
/tarefas
. Ele retorna uma lista de todas as tarefas existentes.
A anotação @DeleteMapping
é uma anotação do Spring que indica que o método trata solicitações HTTP
DELETE. Neste caso, o método deletar
é acionado quando uma solicitação DELETE é feita para
/tarefas/{tarefaId}
. O parâmetro @PathVariable
indica que o valor de
tarefaId
é passado na URL.
A classe TarefaDTO
é um objeto de transferência de dados (DTO) utilizado para representar as tarefas
no recurso de tarefas do projeto.
id
(tipoLong
): identificador da tarefa.titulo
(tipoString
): título da tarefa.descricao
(tipoString
): descrição da tarefa.
getId()
: retorna o identificador da tarefa.setId(Long id)
: define o identificador da tarefa.getTitulo()
: retorna o título da tarefa.setTitulo(String titulo)
: define o título da tarefa.getDescricao()
: retorna a descrição da tarefa.setDescricao(String descricao)
: define a descrição da tarefa.
Essa classe é utilizada para transferir informações entre diferentes camadas da aplicação e para representar as tarefas no formato JSON durante as operações de criação, atualização e consulta realizadas pela API REST implementada no projeto.
Este arquivo está localizado em
C:\Users\user\Desktop\api-spring-boot\src\main\java\com\company\nomeprojeto\tarefas\facade\TarefasFacade.java
e contém a classe TarefasFacade
que é uma classe de fachada (facade) responsável por fornecer uma
camada de abstração entre a lógica de negócios e a camada de controle da API de tarefas.
A classe TarefasFacade
contém as seguintes funções:
criar
: cria uma nova tarefa a partir de um objetoTarefaDTO
, atribui um id único e adiciona ao mapa de tarefas;atualizar
: atualiza uma tarefa existente com um objetoTarefaDTO
e um id de tarefa existente;getById
: recupera uma tarefa existente a partir de um id de tarefa;getAll
: recupera todas as tarefas existentes;delete
: remove uma tarefa existente a partir de um id de tarefa.
A classe TarefasFacade
é marcada com a anotação @Service
do Spring Framework, indicando
que é um componente de serviço que deve ser gerenciado pelo contêiner do Spring. Além disso, a classe contém um
mapa estático tarefas
que é usado para armazenar todas as tarefas gerenciadas pela fachada.