Code Monkey home page Code Monkey logo

esp-java-xxiv's Introduction

Desenvolvimento Web com Java e Spring Boot

Sobre a disciplina

Essa disciplina é oferecida no curso de pós-graduação online em Java da Universidade Tecnológica Federal do Paraná - Campus Cornélio Procópio.

A disciplina é ministrada pelo prof. Gabriel Costa Silva desde 2019/2. Este repositório está ativo desde Setembro/2022.

Objetivo

O objetivo geral dessa disciplina é capacitar o estudante para criar aplicações Web funcionais usando Java e o framework Spring Boot.

Tecnologias

Além do Java e Spring Boot, outras tecnologias que são usadas na disciplina são:

  • Maven;
  • Git;
  • Bootstrap;
  • Freemarker;
  • Spring Security e Spring Data;

Branches

As branches estão organizadas de acordo com as semanas e os tópicos de aula. Os assuntos das aulas estão organizados da seguinte forma:

  • Semana 01: Essa primeira aula prática dá início a um projeto do tipo CRUD. Um CRUD é um aplicativo que permite criar (create), ler (read), alterar (update) e excluir (delete) dados. Como referência, vamos usar os dados de cidades. Uma cidade está associada a um único estado. Portanto, para criar uma cidade precisamos informar o nome da cidade e o estado onde ela se encontra.

  • Semana 02: Esta aula transforma a página estática em uma página dinâmica. Isso é necessário porque queremos que a tabela de cidades seja atualizada à medida que novas cidades são inseridas. Para isso, vamos precisar de mais uma tecnologia - o Freemarker. Em seguida, mudamos a página existente para uma nova pasta. Assim, o Spring Boot reconhece a página como uma página dinâmica. Também alteramos a extensão da página. O próximo passo é colocar o código dinâmico na página, usando a sintaxe do Freemarker. Também fazemos os ajustes necessários para implementar o padrão MVC no projeto.

  • Semana 03: Esta aula finaliza a implementação das quatro operações CRUD. Isso significa que nosso usuário será capaz de criar, alterar, excluir e listar as cidades em uma base de dados. Observe que ainda estamos usando uma base local, baseada em uma lista em memória. Nós vamos evoluir esse projeto até integrarmos essa base com um banco de dados.

  • Semana 04: Nesse ponto, o CRUD de cidades funciona - desde que todos os dados inseridos estejam corretos! Como não conseguimos garantir isso o tempo todo, precisamos de meios para validar a entrada de dados. É aí que entra o Bean Validation Framework. Ele é um recurso fundamental para garantir que as entradas de dados estejam de acordo com o esperado. Nesta aula, vamos ver como usar recursos do Bean Validation Framework juntamente com o Spring Boot, Freemarker e Bootstrap para garantir que o usuário consiga visualizar os erros e corrigir os dados sempre que necessário.

  • Semana 05: Normalmente, um aplicativo real vai precisar mais do salvar dados em memória - ele vai precisar de persistência em banco! É aí que entra o conteúdo dessa aula. Além de mostrar como integrar nossa aplicação com o banco de dados usando Spring Data, vamos apresentar algumas questões arquiteturais importantes quando se trata de aplicações Web.

  • Semana 06: Na nossa primeira aplicação, a interface gráfica e o restante da aplicação estão integrados em um único arquivo de deploy. Isso é útil em várias situações, mas existem casos que você precisa integrar uma aplicação com outra existente. Nesses casos, você precisa de uma API. Nesta aula vamos construir uma nova aplicação que funciona como uma API, recebendo dados usando a arquitetura REST. Para fazer isso, vamos usar uma nova tecnologia do Spring - o Spring WebFlux.

  • Semana 07: A maioria das aplicações Web têm algum tipo de segurança. Segurança é um termo amplo que abrange vários aspectos, como conexão segura, cifragem de dados entre outros. Nesta seção, nós vamos focar em dois dos mecanismos mais comuns de segurança: autenticação e autorização. Esse tópico é tão grande que o Spring tem um projeto inteiro só pra cuidar disso: o Spring Security. Essa seção se concentra naquilo que é fundamental para os mecanismos de autenticação e autorização, incluindo a definição de usuários em um banco de dados e suas permissões.

  • Semana 08: A penúltima aula aborda três tópicos complementares no contexto do aplicativo que estamos usando como exemplo, mas importantes no desenvolvimento de aplicações Web. Listeners permitem empregar o padrão publisher-subscriber (observer) de uma forma muito simples com o Spring Boot. Sessões e cookies permitem armazenar dados temporariamente. Enquanto o primeiro guarda dados em um espaço na memória do servidor, o outro guarda dados diretamente no navegador.

  • Semana 09: A última aula mostra como usar Single Sign-on (SSO) para autenticar um usuário usando o serviço do Google e permitir o acesso à aplicação CRUD.

esp-java-xxiv's People

Contributors

gabrielcostasilva avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

apn-aperinet

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.