{"id":697,"date":"2020-02-04T11:10:23","date_gmt":"2020-02-04T14:10:23","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=697"},"modified":"2020-02-04T11:10:26","modified_gmt":"2020-02-04T14:10:26","slug":"introducao-ao-spring-boot-3","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Spring Boot #3"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Desenvolvendo_Sua_Primeira_Aplicacao_Spring_Boot\" >Desenvolvendo Sua Primeira\nAplica\u00e7\u00e3o Spring Boot<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Adicionando_as_Dependencias_Classpath\" >Adicionando as Depend\u00eancias\nClasspath<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Escrevendo_o_Codigo\" >Escrevendo o C\u00f3digo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#As_Anotacoes_RestController_e_RequestMapping\" >As Anota\u00e7\u00f5es @RestController e\n@RequestMapping<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#A_Anotacao_EnableAutoConfiguration\" >A Anota\u00e7\u00e3o @EnableAutoConfiguration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Iniciadores_e_Autoconfiguracao\" >Iniciadores e Autoconfigura\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#O_Metodo_%E2%80%9Cmain%E2%80%9D\" >O M\u00e9todo \u201cmain\u201d<\/a><\/li><\/ul><\/nav><\/div>\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Desenvolvendo_Sua_Primeira_Aplicacao_Spring_Boot\"><\/span><strong>Desenvolvendo Sua Primeira\nAplica\u00e7\u00e3o Spring Boot<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Antes de come\u00e7armos, abra um terminal\ne vamos verificar a vers\u00e3o do Java e do Maven.<\/p>\n\n\n\n<p><strong>C:\\Users\\zigui>java -version<\/strong><\/p>\n\n\n\n<p>java version &#8220;1.8.0_241&#8221;<\/p>\n\n\n\n<p>Java(TM) SE Runtime Environment (build 1.8.0_241-b07)<\/p>\n\n\n\n<p>Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07,\nmixed mode)<\/p>\n\n\n\n<p><strong>C:\\Users\\zigui>mvn -v<\/strong><\/p>\n\n\n\n<p>Apache Maven 3.6.1\n(d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00)<\/p>\n\n\n\n<p>Maven home:\nC:\\NovosProgramas\\apache-maven-3.6.1\\bin\\..<\/p>\n\n\n\n<p>Java version: 13.0.1, vendor: Oracle Corporation,\nruntime: C:\\Program Files\\Java\\jdk-13.0.1<\/p>\n\n\n\n<p>Default locale: pt_BR, platform encoding: Cp1252<\/p>\n\n\n\n<p>OS name: &#8220;windows 10&#8221;, version:\n&#8220;10.0&#8221;, arch: &#8220;amd64&#8221;, family: &#8220;windows&#8221;<\/p>\n\n\n\n<p><strong>Criando o POM<\/strong><\/p>\n\n\n\n<p>Vamos criar um arquivo chamado pom.xml. O pom.xml \u00e9 a receita que \u00e9 utilizada para construir o projeto. Abra um editor de texto e digite o seguinte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n    xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;groupId>com.example&lt;\/groupId>\n    &lt;artifactId>myproject&lt;\/artifactId>\n    &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n\n    &lt;parent>\n        &lt;groupId>org.springframework.boot&lt;\/groupId>\n        &lt;artifactId>spring-boot-starter-parent&lt;\/artifactId>\n        &lt;version>2.2.4.RELEASE&lt;\/version>\n    &lt;\/parent>\n\n    &lt;description\/>\n    &lt;developers>\n        &lt;developer\/>\n    &lt;\/developers>\n    &lt;licenses>\n        &lt;license\/>\n    &lt;\/licenses>\n    &lt;scm>\n        &lt;url\/>\n    &lt;\/scm>\n    &lt;url\/>\n\n    &lt;!-- Additional lines to be added here... -->\n\n&lt;\/project>\n<\/code><\/pre>\n\n\n\n<p>Para testar voc\u00ea pode executar\no comando mvn package. Em uma IDE n\u00e3o h\u00e1 necessidade de fazer o comando.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adicionando_as_Dependencias_Classpath\"><\/span><strong>Adicionando as Depend\u00eancias\nClasspath<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Spring Boot fornece um n\u00famero\nde \u201cIniciadores\u201d que permite que voc\u00ea adicione jars para o seu classpath.<\/p>\n\n\n\n<p>Nossas aplica\u00e7\u00f5es para teste\nde fuma\u00e7a utiliza o spring-boot-starter-parent dentro da se\u00e7\u00e3o parent do POM.<\/p>\n\n\n\n<p>O spring-boot-starter-parent \u00e9\num iniciador especial que fornece configura\u00e7\u00f5es padr\u00f5es do Maven.<\/p>\n\n\n\n<p>Tamb\u00e9m fornece uma se\u00e7\u00e3o dependency-management\nque voc\u00ea pode omitir a tag version.<\/p>\n\n\n\n<p>Outros \u201cIniciadores\u201d fornecem\ndepend\u00eancias que voc\u00ea precisar\u00e1 quando desenvolver um tipo espec\u00edfico de\naplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>Se formos desenvolver uma\naplica\u00e7\u00e3o web, n\u00f3s precisaremos adicionar a depend\u00eancia\nspring-boot-starter-web.<\/p>\n\n\n\n<p>Antes disso execute o comando:\nmvn dependency:tree<\/p>\n\n\n\n<p>&nbsp;[INFO]<\/p>\n\n\n\n<p>[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\ncom.example:myproject &gt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p>[INFO] Building myproject 0.0.1-SNAPSHOT<\/p>\n\n\n\n<p>[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;[ jar\n]&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p>[INFO]<\/p>\n\n\n\n<p>[INFO] &#8212; maven-dependency-plugin:3.1.1:tree\n(default-cli) @ myproject &#8212;<\/p>\n\n\n\n<p>[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT<\/p>\n\n\n\n<p>[INFO]\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p>[INFO] BUILD SUCCESS<\/p>\n\n\n\n<p>[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p>[INFO] Total time:&nbsp;\n12.521 s<\/p>\n\n\n\n<p>[INFO] Finished at: 2020-02-04T09:35:01-03:00<\/p>\n\n\n\n<p>[INFO]\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p>O comando mvn dependency:tree\nimprime a \u00e1rvore de depend\u00eancia do seu projeto. Voc\u00ea pode ver as depend\u00eancias que\no spring-boot-starter-parent fornece.<\/p>\n\n\n\n<p>Para adicionar as depend\u00eancias necess\u00e1ria, edite o seu pom.xml e adicione a depend\u00eancia spring-boot-starter-web abaixo da se\u00e7\u00e3o parent.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t&lt;dependencies>\n\t\t&lt;dependency>\n\t\t\t&lt;groupId>org.springframework.boot&lt;\/groupId>\n\t\t\t&lt;artifactId>spring-boot-starter-web&lt;\/artifactId>\n\t\t&lt;\/dependency>\n\t&lt;\/dependencies>\n<\/code><\/pre>\n\n\n\n<p>Execute novamente o mvn\ndependency:tree e ver\u00e1 que ser\u00e1 adicionada mais depend\u00eancias no projeto como o\nTomcat web server e o Spring Boot.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Escrevendo_o_Codigo\"><\/span><strong>Escrevendo o C\u00f3digo<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Para terminar nossa aplica\u00e7\u00e3o,\nn\u00f3s precisamos criar um arquivo java. Por padr\u00e3o, o Maven compila o c\u00f3digo\nfonte da pasta src\/main\/java, ent\u00e3o n\u00f3s precisamos criar essa estrutura e\ndepois criar um arquivo java.<\/p>\n\n\n\n<p>No fim o caminho desse arquivo ficar\u00e1 assim: src\/main\/java\/Example.java. Vamos criar o arquivo Example com o seguinte c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import org.springframework.boot.*;\nimport org.springframework.boot.autoconfigure.*;\nimport org.springframework.web.bind.annotation.*;\n\n@RestController\n@EnableAutoConfiguration\npublic class Example {\n\n    @RequestMapping(\"\/\")\n    String home() {\n        return \"Hello World!\";\n    }\n\n    public static void main(String&#91;] args) {\n        SpringApplication.run(Example.class, args);\n    }\n\n}<\/code><\/pre>\n\n\n\n<p>Apesar de ter pouco c\u00f3digo, h\u00e1\nmuita coisa acontecendo. Iremos ver as partes principais.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"As_Anotacoes_RestController_e_RequestMapping\"><\/span><strong>As Anota\u00e7\u00f5es @RestController e\n@RequestMapping<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>A primeira anota\u00e7\u00e3o da nossa\nclasse Example \u00e9 a @RestController. Isso \u00e9 conhecido como uma anota\u00e7\u00e3o estereotipa\n(<em>stereotype<\/em>&nbsp;annotation).<\/p>\n\n\n\n<p>Ela fornece dicas para as\npessoas que est\u00e3o lendo o c\u00f3digo e para o Spring \u00e9 fornecido uma regra\nespec\u00edfica.<\/p>\n\n\n\n<p>Nesse caso, nossa classe \u00e9 uma\nweb @Controller, o Spring entende que essa classe ir\u00e1 manipular requisi\u00e7\u00f5es vinda\nda web.<\/p>\n\n\n\n<p>A anota\u00e7\u00e3o @RequestMapping fornece\ninforma\u00e7\u00f5es sobre o \u201croteamento\u201d. No Spring qualquer requisi\u00e7\u00e3o HTTP com o caminho\n\/ \u00e9 mapeado pelo m\u00e9todo home.<\/p>\n\n\n\n<p>A anota\u00e7\u00e3o @RestController diz\nao Spring para renderizar o resultado e retornar para o requisitor.<\/p>\n\n\n\n<p>As anota\u00e7\u00f5es @RestController e\n@RequestMapping s\u00e3o anota\u00e7\u00f5es do Spring MVC e n\u00e3o do Spring Boot.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_Anotacao_EnableAutoConfiguration\"><\/span><strong>A Anota\u00e7\u00e3o @EnableAutoConfiguration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>O segundo n\u00edvel de anota\u00e7\u00e3o \u00e9\no @EnableAutoConfiguration. Essa anota\u00e7\u00e3o diz ao Spring Boot \u201cse virar\u201d com a\nconfigura\u00e7\u00e3o do Spring, baseados nas depend\u00eancias que voc\u00ea adicionou.<\/p>\n\n\n\n<p>O spring-boot-starter-web\nadiciona o Tomcat e o Spring MVC, a autoconfigura\u00e7\u00e3o assume que voc\u00ea \u00e9 um\ndesenvolvedor web e configura o Spring de acordo com esse cen\u00e1rio.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Iniciadores_e_Autoconfiguracao\"><\/span><strong>Iniciadores e Autoconfigura\u00e7\u00e3o<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Autoconfigura\u00e7\u00e3o \u00e9 projetado\npara trabalhar bem com os \u201cIniciadores\u201d, mas os dois conceitos n\u00e3o est\u00e3o ligados.<\/p>\n\n\n\n<p>Voc\u00ea \u00e9 livre para escolher\ndepend\u00eancias externas dos iniciadores. Ainda assim o Spring Boot far\u00e1 a melhor\nconfigura\u00e7\u00e3o para a sua aplica\u00e7\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_Metodo_%E2%80%9Cmain%E2%80%9D\"><\/span><strong>O M\u00e9todo \u201cmain\u201d<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>A parte final da nossa\naplica\u00e7\u00e3o \u00e9 o m\u00e9todo main. Esse \u00e9 apenas o m\u00e9todo padr\u00e3o do Java para inicializar\numa aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>Nosso m\u00e9todo main \u00e9 controlado\npela classe SpringApplication do Spring Boot que executa o run.<\/p>\n\n\n\n<p>SpringApplication sobe a nossa\naplica\u00e7\u00e3o, iniciando o Spring, o qual inicia a autoconfigura\u00e7\u00e3o do Tomcat web\nserver.<\/p>\n\n\n\n<p>N\u00f3s precisamos passar\nExample.class como argumento para o m\u00e9todo run para dizer ao SpringApplication que\n\u00e9 o primeiro componente Spring.<\/p>\n\n\n\n<p>O args array \u00e9 tamb\u00e9m passado para expor quaisquer argumentos da linha de comando.<\/p>\n\n\n\n<p>Fonte:  <a href=\"https:\/\/docs.spring.io\/spring-boot\/docs\/2.2.4.RELEASE\/reference\/html\/getting-started.html#getting-started-first-application\">https:\/\/docs.spring.io\/spring-boot\/docs\/2.2.4.RELEASE\/reference\/html\/getting-started.html#getting-started-first-application<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Desenvolvendo Sua Primeira Aplica\u00e7\u00e3o Spring Boot Antes de come\u00e7armos, abra um terminal e vamos verificar a vers\u00e3o do Java e do Maven. C:\\Users\\zigui>java -version java version &#8220;1.8.0_241&#8221; Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) C:\\Users\\zigui>mvn -v Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00) Maven home: C:\\NovosProgramas\\apache-maven-3.6.1\\bin\\.. Java version: 13.0.1, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":60,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-springboot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.5 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Introdu\u00e7\u00e3o ao Spring Boot #3 - Viciados em Aprender<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introdu\u00e7\u00e3o ao Spring Boot #3\" \/>\n<meta property=\"og:description\" content=\"Desenvolvendo Sua Primeira Aplica\u00e7\u00e3o Spring Boot Antes de come\u00e7armos, abra um terminal e vamos verificar a vers\u00e3o do Java e do Maven. C:Userszigui&gt;java -version java version &#8220;1.8.0_241&#8221; Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) C:Userszigui&gt;mvn -v Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00) Maven home: C:NovosProgramasapache-maven-3.6.1bin.. Java version: 13.0.1, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-04T14:10:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-04T14:10:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"blackzig\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"blackzig\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Introdu\u00e7\u00e3o ao Spring Boot #3\",\"datePublished\":\"2020-02-04T14:10:23+00:00\",\"dateModified\":\"2020-02-04T14:10:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/\"},\"wordCount\":823,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1_8lBam7TNgtjy8Ne5EkP54A.png\",\"articleSection\":[\"Spring Boot\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/\",\"name\":\"Introdu\u00e7\u00e3o ao Spring Boot #3 - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1_8lBam7TNgtjy8Ne5EkP54A.png\",\"datePublished\":\"2020-02-04T14:10:23+00:00\",\"dateModified\":\"2020-02-04T14:10:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1_8lBam7TNgtjy8Ne5EkP54A.png\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1_8lBam7TNgtjy8Ne5EkP54A.png\",\"width\":700,\"height\":400,\"caption\":\"spring boot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/introducao-ao-spring-boot-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introdu\u00e7\u00e3o ao Spring Boot #3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\",\"name\":\"Viciados em Aprender\",\"description\":\"Queremos aprender tudo o que for poss\u00edvel nesta vida.\",\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\",\"name\":\"blackzig\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"blackzig\"},\"logo\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.micheladrianomedeiros.com.br\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introdu\u00e7\u00e3o ao Spring Boot #3 - Viciados em Aprender","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:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","og_locale":"pt_PT","og_type":"article","og_title":"Introdu\u00e7\u00e3o ao Spring Boot #3","og_description":"Desenvolvendo Sua Primeira Aplica\u00e7\u00e3o Spring Boot Antes de come\u00e7armos, abra um terminal e vamos verificar a vers\u00e3o do Java e do Maven. C:Userszigui>java -version java version &#8220;1.8.0_241&#8221; Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) C:Userszigui>mvn -v Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00) Maven home: C:NovosProgramasapache-maven-3.6.1bin.. Java version: 13.0.1, [&hellip;]","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","og_site_name":"Viciados em Aprender","article_published_time":"2020-02-04T14:10:23+00:00","article_modified_time":"2020-02-04T14:10:26+00:00","og_image":[{"width":700,"height":400,"url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png","type":"image\/png"}],"author":"blackzig","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"blackzig","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Introdu\u00e7\u00e3o ao Spring Boot #3","datePublished":"2020-02-04T14:10:23+00:00","dateModified":"2020-02-04T14:10:26+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/"},"wordCount":823,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png","articleSection":["Spring Boot"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","name":"Introdu\u00e7\u00e3o ao Spring Boot #3 - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png","datePublished":"2020-02-04T14:10:23+00:00","dateModified":"2020-02-04T14:10:26+00:00","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#primaryimage","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/06\/1_8lBam7TNgtjy8Ne5EkP54A.png","width":700,"height":400,"caption":"spring boot"},{"@type":"BreadcrumbList","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/micheladrianomedeiros.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Introdu\u00e7\u00e3o ao Spring Boot #3"}]},{"@type":"WebSite","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/","name":"Viciados em Aprender","description":"Queremos aprender tudo o que for poss\u00edvel nesta vida.","publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micheladrianomedeiros.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e","name":"blackzig","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","width":1920,"height":1080,"caption":"blackzig"},"logo":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg"},"sameAs":["http:\/\/www.micheladrianomedeiros.com.br\/"]}]}},"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=697"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697\/revisions"}],"predecessor-version":[{"id":698,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697\/revisions\/698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/60"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}