{"id":26371906,"url":"https://github.com/danielfreitassc/spring_boot_annotation","last_synced_at":"2025-03-17T00:47:19.775Z","repository":{"id":210325760,"uuid":"726296541","full_name":"DanielFreitassc/Spring_Boot_Annotation","owner":"DanielFreitassc","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-02T01:12:51.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-21T17:24:30.804Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanielFreitassc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-12-02T01:12:24.000Z","updated_at":"2023-12-02T01:12:24.000Z","dependencies_parsed_at":"2023-12-02T02:24:08.006Z","dependency_job_id":"eec698ac-ed67-4bb2-a799-73a75cf4916f","html_url":"https://github.com/DanielFreitassc/Spring_Boot_Annotation","commit_stats":null,"previous_names":["danielfreitassc/spring_boot_annotation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielFreitassc%2FSpring_Boot_Annotation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielFreitassc%2FSpring_Boot_Annotation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielFreitassc%2FSpring_Boot_Annotation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielFreitassc%2FSpring_Boot_Annotation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanielFreitassc","download_url":"https://codeload.github.com/DanielFreitassc/Spring_Boot_Annotation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955727,"owners_count":20374373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-17T00:47:19.295Z","updated_at":"2025-03-17T00:47:19.765Z","avatar_url":"https://github.com/DanielFreitassc.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"### Anotações Gerais do Spring Boot:\n\n1. **@SpringBootApplication:**\n   - Utilizada para marcar a classe principal de uma aplicação Spring Boot.\n   - Encapsula outras anotações como @SpringBootConfiguration, @EnableAutoConfiguration e @ComponentScan.\n\n   *Exemplo:*\n   ```java\n   @SpringBootApplication\n   public class MinhaAplicacao {\n       public static void main(String[] args) {\n           SpringApplication.run(MinhaAplicacao.class, args);\n       }\n   }\n   ```\n\n2. **@SpringBootConfiguration:**\n   - Anotação de nível de classe indicando que a classe fornece configuração para uma aplicação Spring Boot.\n   - Pode ser usada como alternativa à anotação padrão @Configuration do Spring.\n\n   *Exemplo:*\n   ```java\n   @SpringBootConfiguration\n   public class MinhaConfiguracao {\n       // Métodos de configuração aqui\n   }\n   ```\n\n3. **@EnableAutoConfiguration:**\n   - Autoconfigura beans presentes no classpath, simplificando o trabalho do desenvolvedor ao assumir as configurações necessárias para executar a aplicação.\n\n   *Exemplo:*\n   ```java\n   @Configuration\n   @EnableAutoConfiguration\n   public class MinhaConfiguracao {\n       // Métodos de configuração aqui\n   }\n   ```\n\n4. **@ComponentScan:**\n   - Indica a quais pacotes o Spring deve escanear em busca de componentes, como controllers e services.\n   - Geralmente usada em conjunto com @Configuration para especificar o pacote a ser escaneado.\n\n   *Exemplo:*\n   ```java\n   @Configuration\n   @ComponentScan(basePackages = \"com.exemplo.pacote\")\n   public class MinhaConfiguracao {\n       // Métodos de configuração aqui\n   }\n   ```\n\n5. **Condições de Autoconfiguração:**\n   - Diversas anotações como @ConditionalOnClass, @ConditionalOnBean, @ConditionalOnProperty, etc., são usadas para configurar automaticamente componentes com base em condições específicas.\n\n### Anotações para Manipulação de Requisições e Controllers:\n\n1. **@Controller:**\n   - Indica que a classe é um controlador Spring MVC, manipulando requisições HTTP.\n   \n   *Exemplo:*\n   ```java\n   @Controller\n   public class MeuController {\n       // Métodos manipuladores aqui\n   }\n   ```\n\n2. **@RestController:**\n   - Utilizada para criar controladores que lidam com APIs RESTful, combinando @Controller e @ResponseBody.\n\n   *Exemplo:*\n   ```java\n   @RestController\n   public class MeuRestController {\n       // Métodos manipuladores de APIs RESTful aqui\n   }\n   ```\n\n3. **@RequestMapping:**\n   - Mapeia requisições HTTP para métodos em um controlador.\n   \n   *Exemplo:*\n   ```java\n   @Controller\n   public class MeuController {\n       @RequestMapping(value = \"/exemplo\", method = RequestMethod.GET)\n       public String exemplo() {\n           // Lógica aqui\n       }\n   }\n   ```\n\n4. **@RequestParam:**\n   - Obtém parâmetros da URI em requisições HTTP. Usado para ler dados de formulários.\n\n   *Exemplo:*\n   ```java\n   @GetMapping(\"/autores\")\n   public String obterAutores(@RequestParam(name = \"nomeAutor\") String nome) {\n       // Lógica aqui\n   }\n   ```\n\n5. **@PathVariable:**\n   - Extrai dados do caminho da URI para métodos em um controlador.\n   \n   *Exemplo:*\n   ```java\n   @GetMapping(\"/autor/{nomeAutor}\")\n   public String obterNomeAutor(@PathVariable(name = \"nomeAutor\") String nome) {\n       // Lógica aqui\n   }\n   ```\n\n6. **@RequestBody:**\n   - Converte o corpo de requisições HTTP em objetos de domínio.\n\n   *Exemplo:*\n   ```java\n   @PostMapping(\"/autor\")\n   public void adicionarAutor(@RequestBody Autor autor) {\n       // Lógica aqui\n   }\n   ```\n\n7. **@ResponseBody:**\n   - Converte objetos de domínio em respostas HTTP, geralmente no formato JSON.\n\n   *Exemplo:*\n   ```java\n   @GetMapping(\"/autor\")\n   public @ResponseBody Autor obterAutor() {\n       Autor autor = new Autor();\n       // Lógica para preencher autor\n       return autor;\n   }\n   ```\n\n8. **@ModelAttribute:**\n   - Refere-se a objetos modelo no Spring MVC, podendo ser usado em métodos ou argumentos de métodos.\n\n   *Exemplo:*\n   ```java\n   @ModelAttribute(\"autor\")\n   public Autor obterAutor() {\n       // Lógica para criar e retornar um autor\n   }\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielfreitassc%2Fspring_boot_annotation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielfreitassc%2Fspring_boot_annotation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielfreitassc%2Fspring_boot_annotation/lists"}