{"id":229,"date":"2024-01-20T20:30:53","date_gmt":"2024-01-20T23:30:53","guid":{"rendered":"https:\/\/urutaudev.com.br\/?p=229"},"modified":"2024-01-20T20:34:08","modified_gmt":"2024-01-20T23:34:08","slug":"principais-anotacoes-para-um-projeto-em-spring","status":"publish","type":"post","link":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/","title":{"rendered":"Principais anota\u00e7\u00f5es para um projeto em Spring"},"content":{"rendered":"<p>&nbsp;<\/p>\n<figure id=\"attachment_44\" aria-describedby=\"caption-attachment-44\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-44\" src=\"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring-300x223.webp\" alt=\"Principais anota\u00e7\u00f5es para um projeto em Spring\" width=\"300\" height=\"223\" srcset=\"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring-300x223.webp 300w, https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp 404w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-44\" class=\"wp-caption-text\">Java Spring<\/figcaption><\/figure>\n<h4><\/h4>\n<h4>Principais anota\u00e7\u00f5es para um projeto em Spring, neste pequeno artigo mostro as principais anota\u00e7\u00f5es para um projeto em Spring, nele vou mostrar as anota\u00e7\u00f5es que um programador java utiliza no dia a dia do desenvolvimento de apis usando o framework Spring do Java.<\/h4>\n<h4>Vamos come\u00e7ar com as anota\u00e7\u00f5es das camadas da aplica\u00e7\u00e3o:<\/h4>\n<p>&nbsp;<\/p>\n<div>\n<h4>Anota\u00e7\u00f5es de camadas<\/h4>\n<h5>@Controller ou @RestController<\/h5>\n<div>Usado para definir o Controller da nossa aplica\u00e7\u00e3o .<\/div>\n<h5><\/h5>\n<h5>@Service:<\/h5>\n<div>\u00a0Usado para definir \u00a0que uma classe \u00e9 um servi\u00e7o (camada de servi\u00e7o).<\/div>\n<div><\/div>\n<h5>\u00a0@Repository<\/h5>\n<div>Usado para definir \u00a0que uma classe \u00e9 um reposit\u00f3rio (camada de persist\u00eancia).<\/div>\n<div><\/div>\n<h5>@Configuration<\/h5>\n<div>Usado para definir \u00a0que uma classe \u00e9 uma classe de configura\u00e7\u00e3o do Spring.<\/div>\n<div><\/div>\n<h5>@ControllerAdvice<\/h5>\n<div>\u00a0Usado para definir que uma classe ser\u00e1 respons\u00e1vel por centralizar o tratamento de exce\u00e7\u00f5es.<\/div>\n<div><\/div>\n<h5>@Component<\/h5>\n<div>Usado para definir que uma classe \u00e9 um componente gerenciado pelo cont\u00eainer de invers\u00e3o de controle (IoC container).<\/div>\n<div><\/div>\n<h5>@Bean<\/h5>\n<div>\u00a0Usado para definir que um m\u00e9todo ser\u00e1 respons\u00e1vel por (produzir\/fornecer) um objeto gerenciado pelo cont\u00eainer de invers\u00e3o de controle do Spring.<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div>\n<h4>Anota\u00e7\u00f5es de um Controller<\/h4>\n<p>&nbsp;<\/p>\n<\/div>\n<div>\n<h5>@Controller<\/h5>\n<div>Usado para definir o controller, no caso \u00a0em um aplicativo Spring MVC.<\/div>\n<div><\/div>\n<h5>@RestController<\/h5>\n<div>Usado para definir o controller de uma api.<\/div>\n<div><\/div>\n<h5>@RequestMapping(&#8220;api&#8221;)<\/h5>\n<div>Usado para mapear a url de um recurso da api.<\/div>\n<div><\/div>\n<div>\n<h4>Anota\u00e7\u00f5es dos m\u00e9todos do Controller de uma api<\/h4>\n<\/div>\n<h5>@GetMapping<\/h5>\n<div>Anota\u00e7\u00e3o usado no m\u00e9todo de requisi\u00e7\u00e3o da api (Get).<\/div>\n<div><\/div>\n<h5>@PutMapping(value = &#8220;\/{id}&#8221;)<\/h5>\n<div>Anota\u00e7\u00e3o usado no m\u00e9todo de requisi\u00e7\u00e3o da api (Put).<\/div>\n<div><\/div>\n<h5>@PostMapping<\/h5>\n<div>Anota\u00e7\u00e3o usado no m\u00e9todo de requisi\u00e7\u00e3o da api (Post).<\/div>\n<div><\/div>\n<h5>@DeleteMapping(&#8220;\/{id}&#8221;)<\/h5>\n<div>Anota\u00e7\u00e3o usado no m\u00e9todo de requisi\u00e7\u00e3o da api (Delete).<\/div>\n<\/div>\n<div><\/div>\n<div><\/div>\n<div>\n<h4>Outras Anota\u00e7\u00f5es importantes de uma api<\/h4>\n<h5>@RequestParam(defaultValue = &#8220;0&#8221;) int page<\/h5>\n<div>\u00a0Usado para mapear o par\u00e2metro de uma rota da api.<\/div>\n<div><\/div>\n<h5>@ResponseStatus(code = HttpStatus.CREATED)<\/h5>\n<div>Usado para definir a resposta da rota de uma api, no exemplo retorna o status (criado=201).<\/div>\n<div><\/div>\n<h5>@PathVariable Long id<\/h5>\n<div>Usado para mapear a vari\u00e1vel da rota de uma api, no caso abaixo mostra como pegar a vari\u00e1vel id da rota get.<\/div>\n<div><\/div>\n<div>&#8220;`<\/div>\n<div>@GetMapping(&#8220;\/{id}&#8221;)<\/div>\n<div>public ResponseDTO findById(@PathVariable Long id) {<\/div>\n<div>\u00a0 \u00a0 return service.findById(id);<\/div>\n<div>}<\/div>\n<div>&#8220;`<\/div>\n<h5>@RequestBody RequestDTO requestDTO<\/h5>\n<div>Usado para obter o corpo(body) de uma requisi\u00e7\u00e3o da api.<\/div>\n<div><\/div>\n<div>&#8220;`<\/div>\n<div>@PostMapping<\/div>\n<div>public ResponseDTO create(@RequestBody RequestBodyDTO requestBodyDTO) {<\/div>\n<div>\u00a0 \u00a0 return service.create(requestBodyDTO);<\/div>\n<div>}<\/div>\n<div>&#8220;`<\/div>\n<div><\/div>\n<div>\n<h4>Anota\u00e7\u00f5es de valida\u00e7\u00e3o uma api:<\/h4>\n<\/div>\n<h5>@Validated<\/h5>\n<div>Usado para indicar que a valida\u00e7\u00e3o de um grupo de elementos a serem validados, permiti a valida\u00e7\u00e3o parcial de um objeto.<\/div>\n<div><\/div>\n<h5>@Valid<\/h5>\n<div>Usado validar um item ou objeto.<\/div>\n<\/div>\n<div><\/div>\n<div>\n<div>\n<h4>Anota\u00e7\u00f5es de persist\u00eancia do JPA , ORM<\/h4>\n<\/div>\n<h5>@Entity<\/h5>\n<div>Usado para indicar que a classe \u00e9 uma entidade JPA.<\/div>\n<div><\/div>\n<h5>@Table(name = &#8220;nome_tabela&#8221;)<\/h5>\n<div>\u00a0Usado para definir o nome da tabela.<\/div>\n<h5>@Id<\/h5>\n<div>Informa que \u00a0o campo \u00e9 uma chave prim\u00e1ria da entidade.<\/div>\n<div><\/div>\n<h5>@GeneratedValue(strategy = GenerationType.IDENTITY)<\/h5>\n<div>Informa que o ID deve ser gerado automaticamente.<\/div>\n<div><\/div>\n<div><strong>Exemplos de strategy:<\/strong><\/div>\n<div>&#8211; GenerationType.AUTO<\/div>\n<div>&#8211; GenerationType.IDENTITY<\/div>\n<div>&#8211; GenerationType.SEQUENCE<\/div>\n<div><\/div>\n<h5>@Column(name=&#8217;nome da coluna&#8217;.length = 11, nullable = false)<\/h5>\n<div>Mapeia uma coluna da entidade, especificando o nome, o comprimento e n\u00e3o informa que n\u00e3o permite nulo.<\/div>\n<div><\/div>\n<h5>@ManyToOne(fetch = FetchType.LAZY, optional = false)<\/h5>\n<div>Define um relacionamento (muitos para um), especificando o carregamento lazy e um relacionamento n\u00e3o opcional.<\/div>\n<div><\/div>\n<h5>@OneToMany(mappedBy = &#8220;movimentacaoCEI&#8221;, cascade = CascadeType.ALL)<\/h5>\n<div>Define um relacionamento (um para muitos), especificando o atributo relacionado na outra classe e que qualquer a\u00e7\u00e3o nesta entidade ter\u00e1 um efeito cascata na outra, exemplo um delete.<\/div>\n<h5><\/h5>\n<h5>@ManyToMany()<\/h5>\n<div>Define um relacionamento (muitos para muitos).<\/div>\n<div><\/div>\n<h5>@OrderBy(&#8220;id ASC&#8221;)<\/h5>\n<div>Usado para especificar a ordena\u00e7\u00e3o dos elementos de uma consulta.<\/div>\n<div><\/div>\n<h5>@JoinColumn(name = &#8220;entidade_id&#8221;, nullable = false)<\/h5>\n<div>Define a coluna de chave estrangeira usada para o relacionamento informando que essa colina n\u00e3o pode receber valor nulo.<\/div>\n<div><\/div>\n<div>\n<h4>Outras Anota\u00e7\u00f5es<\/h4>\n<\/div>\n<h5>@Autowired<\/h5>\n<div>Usado para injetar depend\u00eancias em m\u00e9todos, ou seja inicializar.<\/div>\n<div><\/div>\n<h5>@JsonInclude(Include.NON_NULL)<\/h5>\n<div>Informa que apenas as propriedades que n\u00e3o s\u00e3o nulas ser\u00e3o exibidas no JSON.<\/div>\n<div><\/div>\n<h5>@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)<\/h5>\n<div>Informa que a propriedade anotada deve apenas ser serializada e n\u00e3o desserializada, usado para evitar que alguns campos n\u00e3o sejam expostos nas respostas da API.<\/div>\n<div><\/div>\n<h5>@JsonProperty(&#8220;_id&#8221;) Long id<\/h5>\n<div>Usado para renomear uma propriedade, no caso como a propriedade ser\u00e1 exibida no json.<\/div>\n<div><\/div>\n<h5>@ExceptionHandler({NotFoundException.class, RecordNotFoundException.class})<\/h5>\n<div>Usado para capturar e tratar exce\u00e7\u00f5es espec\u00edficas em m\u00e9todos de um controlador de tratamento de exce\u00e7\u00f5es, no exemplo ele captura exce\u00e7\u00f5es NotFound e RecordNotFound.<\/div>\n<div><\/div>\n<div>&#8220;`<\/div>\n<div>@ExceptionHandler({NotFoundException.class, RecordNotFoundException.class})<\/div>\n<div>public ResponseEntity&lt;String&gt; handleNotFoundException(Exception ex) {<\/div>\n<div>\u00a0 \u00a0 return new ResponseEntity&lt;&gt;(&#8220;Recurso n\u00e3o encontrado: &#8221; + ex.getMessage(), HttpStatus.NOT_FOUND);<\/div>\n<div>}<\/div>\n<div>&#8220;`<\/div>\n<h5>@Value<\/h5>\n<div>Usada para injetar valores de propriedades em campos de uma classe que \u00e9 gerenciada pelo Spring, no exemplo pego as informa\u00e7\u00e3o do arquivo (application.properties) e injeto no atributo.<\/div>\n<div><\/div>\n<div>Valor no arquivo (application.properties)<\/div>\n<div>&#8220;`<\/div>\n<div>path.folder.files=\/caminho\/dos-arquivos<\/div>\n<div>&#8220;`<\/div>\n<div>Mapeamento no atributo da classe<\/div>\n<div>&#8220;`<\/div>\n<div>@Component<\/div>\n<div>public class Classe {<\/div>\n<div>\u00a0 \u00a0 @Value(&#8220;${path.folder.files}&#8221;)<\/div>\n<div>\u00a0 \u00a0 private String pathFolder;<\/div>\n<div>}<\/div>\n<div>&#8220;`<\/div>\n<\/div>\n<div><\/div>\n<h4>Esta foi uma breve descri\u00e7\u00e3o das principais anota\u00e7\u00f5es para um projeto em Spring, o ecossistema do Spring \u00e9 bastante vasto ent\u00e3o esse artigo cobre uma pequena parcela das anota\u00e7\u00f5es existentes, para mais conhecimento vou deixar o link da documenta\u00e7\u00e3o do Spring, logo abaixo:<\/h4>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>Referencias:<\/h4>\n<p><a href=\"https:\/\/spring.io\">https:\/\/spring.io<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Principais anota\u00e7\u00f5es para um projeto em Spring, neste pequeno artigo mostro as principais anota\u00e7\u00f5es para um projeto em Spring,<\/p>\n","protected":false},"author":1,"featured_media":44,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[13],"tags":[59,22,58,30,21,18],"class_list":["post-229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-apis","tag-java","tag-jpa","tag-maven","tag-spring","tag-tutorias"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev<\/title>\n<meta name=\"description\" content=\"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev\" \/>\n<meta property=\"og:description\" content=\"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/\" \/>\n<meta property=\"og:site_name\" content=\"UrutauDev\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-20T23:30:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-20T23:34:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"404\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"C. Junior\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"C. Junior\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/\"},\"author\":{\"name\":\"C. Junior\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#\\\/schema\\\/person\\\/7e321618d23a158d5a42d5cfbdd99dd6\"},\"headline\":\"Principais anota\u00e7\u00f5es para um projeto em Spring\",\"datePublished\":\"2024-01-20T23:30:53+00:00\",\"dateModified\":\"2024-01-20T23:34:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/\"},\"wordCount\":903,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/java-spring.webp\",\"keywords\":[\"apis\",\"java\",\"jpa\",\"maven\",\"spring\",\"tutorias\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/\",\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/\",\"name\":\"Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/java-spring.webp\",\"datePublished\":\"2024-01-20T23:30:53+00:00\",\"dateModified\":\"2024-01-20T23:34:08+00:00\",\"description\":\"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/java-spring.webp\",\"contentUrl\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/java-spring.webp\",\"width\":404,\"height\":300,\"caption\":\"Java Spring\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/2024\\\/01\\\/20\\\/principais-anotacoes-para-um-projeto-em-spring\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/urutaudev.com.br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Principais anota\u00e7\u00f5es para um projeto em Spring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#website\",\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/\",\"name\":\"UrutauDev\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/urutaudev.com.br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#organization\",\"name\":\"UrutauDev\",\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/cropped-urutau-dev-logo.png\",\"contentUrl\":\"https:\\\/\\\/urutaudev.com.br\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/cropped-urutau-dev-logo.png\",\"width\":100,\"height\":84,\"caption\":\"UrutauDev\"},\"image\":{\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/urutaudev.com.br\\\/#\\\/schema\\\/person\\\/7e321618d23a158d5a42d5cfbdd99dd6\",\"name\":\"C. Junior\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g\",\"caption\":\"C. Junior\"},\"sameAs\":[\"http:\\\/\\\/urutaudev.com.br\",\"instagram.com\\\/urutautec\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC8pDLb5GaYBAoWwQkIzrhRw\"],\"url\":\"https:\\\/\\\/urutaudev.com.br\\\/index.php\\\/author\\\/urutaudev-com-br\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev","description":"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/","og_locale":"en_US","og_type":"article","og_title":"Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev","og_description":"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.","og_url":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/","og_site_name":"UrutauDev","article_published_time":"2024-01-20T23:30:53+00:00","article_modified_time":"2024-01-20T23:34:08+00:00","og_image":[{"width":404,"height":300,"url":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp","type":"image\/webp"}],"author":"C. Junior","twitter_card":"summary_large_image","twitter_misc":{"Written by":"C. Junior","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#article","isPartOf":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/"},"author":{"name":"C. Junior","@id":"https:\/\/urutaudev.com.br\/#\/schema\/person\/7e321618d23a158d5a42d5cfbdd99dd6"},"headline":"Principais anota\u00e7\u00f5es para um projeto em Spring","datePublished":"2024-01-20T23:30:53+00:00","dateModified":"2024-01-20T23:34:08+00:00","mainEntityOfPage":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/"},"wordCount":903,"commentCount":0,"publisher":{"@id":"https:\/\/urutaudev.com.br\/#organization"},"image":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp","keywords":["apis","java","jpa","maven","spring","tutorias"],"articleSection":["Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/","url":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/","name":"Principais anota\u00e7\u00f5es para um projeto em Spring - UrutauDev","isPartOf":{"@id":"https:\/\/urutaudev.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#primaryimage"},"image":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp","datePublished":"2024-01-20T23:30:53+00:00","dateModified":"2024-01-20T23:34:08+00:00","description":"Neste artigo mostro as principais anota\u00e7\u00f5es de um projeto em Spring, que um programador java utiliza no dia a dia de desenvolvimento de apis.","breadcrumb":{"@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#primaryimage","url":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp","contentUrl":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/java-spring.webp","width":404,"height":300,"caption":"Java Spring"},{"@type":"BreadcrumbList","@id":"https:\/\/urutaudev.com.br\/index.php\/2024\/01\/20\/principais-anotacoes-para-um-projeto-em-spring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/urutaudev.com.br\/"},{"@type":"ListItem","position":2,"name":"Principais anota\u00e7\u00f5es para um projeto em Spring"}]},{"@type":"WebSite","@id":"https:\/\/urutaudev.com.br\/#website","url":"https:\/\/urutaudev.com.br\/","name":"UrutauDev","description":"","publisher":{"@id":"https:\/\/urutaudev.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/urutaudev.com.br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/urutaudev.com.br\/#organization","name":"UrutauDev","url":"https:\/\/urutaudev.com.br\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/urutaudev.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/cropped-urutau-dev-logo.png","contentUrl":"https:\/\/urutaudev.com.br\/wp-content\/uploads\/2023\/08\/cropped-urutau-dev-logo.png","width":100,"height":84,"caption":"UrutauDev"},"image":{"@id":"https:\/\/urutaudev.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/urutaudev.com.br\/#\/schema\/person\/7e321618d23a158d5a42d5cfbdd99dd6","name":"C. Junior","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e7df4c63012e2f6991311d4037bdc57752b996058cf1396747a7ab74e8ac032e?s=96&d=mm&r=g","caption":"C. Junior"},"sameAs":["http:\/\/urutaudev.com.br","instagram.com\/urutautec","https:\/\/www.youtube.com\/channel\/UC8pDLb5GaYBAoWwQkIzrhRw"],"url":"https:\/\/urutaudev.com.br\/index.php\/author\/urutaudev-com-br\/"}]}},"_links":{"self":[{"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/posts\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=229"}],"version-history":[{"count":4,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions\/235"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/media\/44"}],"wp:attachment":[{"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/urutaudev.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}