Iniciando com SpringBoot Web

Nesta aula criaremos uma aplicação web com Spring boot, iremos configurar o banco de dados (mysql) e usaremos o template thymeleaf.

assinaturaAssine nossa Comunidade

Aula inicial de introdução ao Java

Hoje iniciamos nosso curso de Java com Spring, iremos utilizar o framework Spring Boot para desenvolver nosso projeto.

Aula Prática


Spring initializr

Após configurar o Java e o JDK, entre no site do Spring Boot e configure um projeto inicial como mostrado, no final você baixa um projeto já pré-pronto, com as configurações iniciais do Spring, descompacte num diretório de sua preferência e abra ele no VS Code, caso ainda não tenha o VS Code irá sugerir extenções para o Java, pode aceitá-las.

Agora dentro do editor abra um novo terminal, faça: Ctrl + ` .

Obs.: Os arquivos necessários para o Maven já vem instalados e provavelmente você não precisará se preocupar.

O nosso projeto já vem com várias coisas configuradas, como o gitignore, o Maven para dependências, dentro de src é onde estará o nosso código

Os arquivos mvnw(unix) e mvnw.cmd(windows) na raiz do projeto são os executáveis que utilizaremos, por exemplo para rodar nossos testes:

    
    ./mvnw test
    
    

Para efetivamente rodar nossa aplicação:

    
    ./mvnw spring-boot:run
    
    

Já no Windows para rodar nossa aplicação seria:

    
    mvnw.cmd spring-boot:run
    
    

Para confirmar a versão do Java instalada num terminal faça:

    
    java -version
    
    

Obs.: Caso tenha dúvidas em outros editores, lembre-se que o projeto que geramos foi feito com o Maven, neste caso a maioria das IDEs tem a opção de abrir como um "Maven Project"

Caso tentarmos rodar nossa aplicação neste momento receberemos alguns erros, em que faltam algumas configurações.

Para começar as configurações abra src/main/resourses/application.properties e preencha com os dados da sua máquina.

    
      spring.datasource.username=${USER}
      spring.datasource.password=${PASSWORD}
      spring.datasource.url=jdbc:${DATABASE_URL}
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
      spring.jpa.show_sql=true
      spring.jpa.hibernate.ddl-auto=update
    
    

Após isso ainda precisamos de um driver pro MySQL conectar com o Java, deve ser colocada no arquivo pom.xml como abaixo:

    
    
      mysql
      mysql-connector-java
      8.0.25
    
    
  

Nós precisamos ter um banco de dados criado para colocar em spring.datasource.url=jdbc:, então crie um e coloque o nome dele após os dois pontos.

Agora quando iniciarmos o servidor e acessar ele pelo localhost:8080 receberemos um erro que não existe uma página web para ser exibida.

Dentro de src/main/java/com/web/tornese/SpringWeb criaremos um diretório chamado controllers e dentro dele um arquivo chamado HomeController.java, tendo a classe HomeController lembre-se de conferir os packages se estão corretos.

Acima da classe precisamos colocar a anotação @Controller, o código já com o método index que retorna uma String para nós fica assim:

Além disso precisamos informar a rota que o Spring usará, adicionamos uma anotação especial para isso.

  
    @Controller
    public class HomeController {
      @GetMapping("/")
      public String index(){
        return "olá alunos!"
      }
    }
  
  

Com isso feito reinicie a aplicação e veja os resultados, você notará que o erro continua, isso se deve ao fato de não termos ainda um template engine que fornece o suporte necessário para o Java montar o HTML e nos retornar algo.

Neste ponto acredito que entendeu já que nossa aplicação depende de outros pacotes, então vá ao https://mvnrepository.com/, procure pelo Thymeleaf Spring5 e Thymeleaf e copie a definição das dependências para nosso arquivo pom.xml, reinicie a aplicação, ainda receberá um erro mas desta vez o erro 500, caso busque pelo log no console verá que o erro vem da falta de template para o Thymeleaf, então vamos consertar isso, trocaremos o retorno para:

  
    return "home/index"
  
  

Dentro do diretório resources/template crie um diretório home e um arquivo chamado index.html, pode adicionar um conteúdo em HTML para testarmos, reiniciamos a aplicação agora e vemos que ela já retorna agora nosso código.

Acesse a página deste templete e baixe o arquivo compactado, site para download do tema SB Admin 2.

Dentro do diretório resources/static coloque os arquivos descompactados da pasta do tema. Com o arquivo index.html, copie todo conteúdo para o index.html de resources/template, sempre reinicie a aplicação quando estamos trabalhando com os templates para que funcionem as alterações.

Dentro da classe HomeController vamos adicionar um parâmetro para que seja acessível através do template, neste caso adicionamos apenas o nome Danilo como atributo.

    
      @Controller
      public class HomeController {
        @GetMapping("/")
        public String index(Model model){
          model.addAttribute("nome", "Danilo");

          return "home/index"
        }
      }
  
  

Encontre no index.html a parte com o título e adicione:

  
    
  
  

Nosso template engine permite colocar atributos dinamicos dentro do HTML como fizemos com: th:text="${nome}", pegando o atributo que passamos no controller.

Pronto! temos nossa primeira aplicação Web, nas próximas aulas iremos complementar nosso App com mais conceitos.



Iniciando com SpringBoot Web

Nesta aula criaremos uma aplicação web com Spring boot, iremos configurar o banco de dados (mysql) e usaremos o template thymeleaf.

assinaturaAssine nossa Comunidade

Aula inicial de introdução ao Java

Hoje iniciamos nosso curso de Java com Spring, iremos utilizar o framework Spring Boot para desenvolver nosso projeto.

Aula Prática


Spring initializr

Após configurar o Java e o JDK, entre no site do Spring Boot e configure um projeto inicial como mostrado, no final você baixa um projeto já pré-pronto, com as configurações iniciais do Spring, descompacte num diretório de sua preferência e abra ele no VS Code, caso ainda não tenha o VS Code irá sugerir extenções para o Java, pode aceitá-las.

Agora dentro do editor abra um novo terminal, faça: Ctrl + ` .

Obs.: Os arquivos necessários para o Maven já vem instalados e provavelmente você não precisará se preocupar.

O nosso projeto já vem com várias coisas configuradas, como o gitignore, o Maven para dependências, dentro de src é onde estará o nosso código

Os arquivos mvnw(unix) e mvnw.cmd(windows) na raiz do projeto são os executáveis que utilizaremos, por exemplo para rodar nossos testes:

    
    ./mvnw test
    
    

Para efetivamente rodar nossa aplicação:

    
    ./mvnw spring-boot:run
    
    

Já no Windows para rodar nossa aplicação seria:

    
    mvnw.cmd spring-boot:run
    
    

Para confirmar a versão do Java instalada num terminal faça:

    
    java -version
    
    

Obs.: Caso tenha dúvidas em outros editores, lembre-se que o projeto que geramos foi feito com o Maven, neste caso a maioria das IDEs tem a opção de abrir como um "Maven Project"

Caso tentarmos rodar nossa aplicação neste momento receberemos alguns erros, em que faltam algumas configurações.

Para começar as configurações abra src/main/resourses/application.properties e preencha com os dados da sua máquina.

    
      spring.datasource.username=${USER}
      spring.datasource.password=${PASSWORD}
      spring.datasource.url=jdbc:${DATABASE_URL}
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
      spring.jpa.show_sql=true
      spring.jpa.hibernate.ddl-auto=update
    
    

Após isso ainda precisamos de um driver pro MySQL conectar com o Java, deve ser colocada no arquivo pom.xml como abaixo:

    
    
      mysql
      mysql-connector-java
      8.0.25
    
    
  

Nós precisamos ter um banco de dados criado para colocar em spring.datasource.url=jdbc:, então crie um e coloque o nome dele após os dois pontos.

Agora quando iniciarmos o servidor e acessar ele pelo localhost:8080 receberemos um erro que não existe uma página web para ser exibida.

Dentro de src/main/java/com/web/tornese/SpringWeb criaremos um diretório chamado controllers e dentro dele um arquivo chamado HomeController.java, tendo a classe HomeController lembre-se de conferir os packages se estão corretos.

Acima da classe precisamos colocar a anotação @Controller, o código já com o método index que retorna uma String para nós fica assim:

Além disso precisamos informar a rota que o Spring usará, adicionamos uma anotação especial para isso.

  
    @Controller
    public class HomeController {
      @GetMapping("/")
      public String index(){
        return "olá alunos!"
      }
    }
  
  

Com isso feito reinicie a aplicação e veja os resultados, você notará que o erro continua, isso se deve ao fato de não termos ainda um template engine que fornece o suporte necessário para o Java montar o HTML e nos retornar algo.

Neste ponto acredito que entendeu já que nossa aplicação depende de outros pacotes, então vá ao https://mvnrepository.com/, procure pelo Thymeleaf Spring5 e Thymeleaf e copie a definição das dependências para nosso arquivo pom.xml, reinicie a aplicação, ainda receberá um erro mas desta vez o erro 500, caso busque pelo log no console verá que o erro vem da falta de template para o Thymeleaf, então vamos consertar isso, trocaremos o retorno para:

  
    return "home/index"
  
  

Dentro do diretório resources/template crie um diretório home e um arquivo chamado index.html, pode adicionar um conteúdo em HTML para testarmos, reiniciamos a aplicação agora e vemos que ela já retorna agora nosso código.

Acesse a página deste templete e baixe o arquivo compactado, site para download do tema SB Admin 2.

Dentro do diretório resources/static coloque os arquivos descompactados da pasta do tema. Com o arquivo index.html, copie todo conteúdo para o index.html de resources/template, sempre reinicie a aplicação quando estamos trabalhando com os templates para que funcionem as alterações.

Dentro da classe HomeController vamos adicionar um parâmetro para que seja acessível através do template, neste caso adicionamos apenas o nome Danilo como atributo.

    
      @Controller
      public class HomeController {
        @GetMapping("/")
        public String index(Model model){
          model.addAttribute("nome", "Danilo");

          return "home/index"
        }
      }
  
  

Encontre no index.html a parte com o título e adicione:

  
    
  
  

Nosso template engine permite colocar atributos dinamicos dentro do HTML como fizemos com: th:text="${nome}", pegando o atributo que passamos no controller.

Pronto! temos nossa primeira aplicação Web, nas próximas aulas iremos complementar nosso App com mais conceitos.