Mind map
Spring

Map content
Spring
áres cobertas pelo ecossistema Spring
- Spring Data
- Acesso de banco de dados
- Spring security
- prover segurança
- cloud computing
- big data
- Spring Data
Surgio como alternativa ao java EE
- Spring não chega ser 100% concorrente do Java EE
- Porque, com Spring, você também usa tecnologias que estão dentro do Java EE
- Mas existem programadores que preferem trabalhar com os projetos do Spring, e outros que preferem trabalhar com as especificações do Java EE, sem Spring
- Porque, com Spring, você também usa tecnologias que estão dentro do Java EE
- Spring não chega ser 100% concorrente do Java EE
O Spring Framework
- o Spring Framework é apenas um, dentre o conjunto de projetos, que o Spring possui
- Ele é o projeto do Spring que serve de base para todos os outros, talvez por isso haja essa pequena confusão
- regra de negócio e menos na infraestrutura
- O Spring MVC
- é um framework para criação de aplicações web e serviços RESTful
- é o framework que te ajuda no desenvolvimento de aplicações web robustas, flexíveis e com uma clara separação de responsabilidades nos papéis do tratamento da requisição
- é acrônimo de Model, View e Controller
- o Controller tratando a requisição. Ele é o primeiro componente que nós vamos programar para receber os dados enviados pelo usuário
- Mas é muito importante estar atento e não cometer erros adicionando regras de negócio, acessando banco de dados ou fazendo validações nessa camada, precisamos passar essa responsabilidade para o Model
- model
- No Model, pensando em algo prático, é o local certo para usarmos o JPA/Hibernate para salvar ou consultar algo no banco de dados, é onde iremos calcular o valor do frete para entrega de um produto, por exemplo
- View
- A View irá “desenhar”, renderizar e transformar em HTML esses dados, para que o usuário consiga visualizar a informação, pois enquanto estávamos no Controller e no Model, estávamos programando em classes Java, e não em algo visual para o browser exibir ao usuário
- o Controller tratando a requisição. Ele é o primeiro componente que nós vamos programar para receber os dados enviados pelo usuário
- 1. Acessamos uma URL no browser, que envia a requisição HTTP para o servidor que roda a aplicação web com Spring MVC. Esse servidor pode ser o Apache Tomcat, por exemplo. Perceba que quem recebe a requisição é o controlador do framework, o Spring MVC. 2. O controlador do framework irá procurar qual classe é responsável por tratar essa requisição, entregando a ela os dados enviados pelo browser. Essa classe faz o papel do controller. 3. O controller passa os dados para o model, que por sua vez executa todas as regras de negócio, como cálculos, validações e acesso ao banco de dados. 4. O resultado das operações realizadas pelo model é retornado ao controller. 5. O controller retorna o nome da view, junto com os dados que ela precisa para renderizar a página. 6. O framework encontra a view, que processa os dados, transformando o resultado em um HTML. 7. Finalmente, o HTML é retornado ao browser do usuário
- Suporte para JDBC, JPA
- grave ou consulte algum banco de dados.
- Injeção de dependencias (Dependency injection – DI)
- é um tipo de inversão de controle (ou Inversion of Control – IoC) que dá nome ao processo de prover instâncias de classes que um objeto precisa para funcionar
- programar voltados para interfaces
- @Autowired
- A anotação @Autowired avisa ao Spring Framework para injetar uma instância de alguma implementação da interface RepositorioCliente na propriedade repositorio
- O Spring MVC
- regra de negócio e menos na infraestrutura
- Ele é o projeto do Spring que serve de base para todos os outros, talvez por isso haja essa pequena confusão
- o Spring Framework é apenas um, dentre o conjunto de projetos, que o Spring possui
funcionalidade
Spring Data
- O Spring Data é um projeto que tem o objetivo de simplificar o acesso a tecnologias de armazenamento de dados, sejam elas relacionais (MySQL, PostgreSQL, etc) ou não (MongoDB, Redis, etc).
- O Spring Data já possui vários projetos dentro dele, como:
- • Spring Data Commons • Spring Data JPA • Spring Data Gemfire • Spring Data KeyValue • Spring Data LDAP • Spring Data MongoDB • Spring Data REST • Spring Data Redis • Spring Data for Apache Cassandra • Spring Data for Apache Solr
- Spring Data JPA
- O suporte do Spring Framework para JPA já é muito bom, mas o projeto Spring Data JPA vai bem além. Ele ajuda os desenvolvedores padronizando o uso de algumas funcionalidades, e isso faz com que tenhamos menos esforço para implementar as mesmas coisas
- Um exemplo disso seria a implementação padrão que ele já nos dá em repositórios, incluindo métodos como save, delete, findOne, entre outros.
- O suporte do Spring Framework para JPA já é muito bom, mas o projeto Spring Data JPA vai bem além. Ele ajuda os desenvolvedores padronizando o uso de algumas funcionalidades, e isso faz com que tenhamos menos esforço para implementar as mesmas coisas
- Spring Data JPA
- • Spring Data Commons • Spring Data JPA • Spring Data Gemfire • Spring Data KeyValue • Spring Data LDAP • Spring Data MongoDB • Spring Data REST • Spring Data Redis • Spring Data for Apache Cassandra • Spring Data for Apache Solr
- O Spring Data já possui vários projetos dentro dele, como:
- O Spring Data é um projeto que tem o objetivo de simplificar o acesso a tecnologias de armazenamento de dados, sejam elas relacionais (MySQL, PostgreSQL, etc) ou não (MongoDB, Redis, etc).
O Spring Security
- esse projeto trata da segurança em nível de aplicação. Ele tem um suporte excelente para autenticação e autorização
- Spring Security torna bem simples a parte de autenticação. Com algumas poucas configurações, já podemos ter uma autenticação via banco de dados, LDAP ou mesmo por memória. Sem falar nas várias integrações que ele suporta e na possibilidade de criar as suas próprias.
- Quanto a autorização, ele é bem flexível também. Através das permissões que atribuímos aos usuários autenticados, podemos proteger as requisições web (como as telas do nosso sistema, por exemplo), a simples invocação de um método e até a instância de um objeto.
- Sem contar que, por tabela, nós já protegemos as nossas aplicações de diversos ataques como o Session Fixation e o Cross Site Request Forgery
- Quanto a autorização, ele é bem flexível também. Através das permissões que atribuímos aos usuários autenticados, podemos proteger as requisições web (como as telas do nosso sistema, por exemplo), a simples invocação de um método e até a instância de um objeto.
- Spring Security torna bem simples a parte de autenticação. Com algumas poucas configurações, já podemos ter uma autenticação via banco de dados, LDAP ou mesmo por memória. Sem falar nas várias integrações que ele suporta e na possibilidade de criar as suas próprias.
- esse projeto trata da segurança em nível de aplicação. Ele tem um suporte excelente para autenticação e autorização
O Spring Boot
- Enquanto os componentes do Spring eram simples, sua configuração era extremamente complexa e cheia de XMLs. Depois de um tempo, a partir da versão 3.0, a configuração pôde ser feita através de código Java.
- A configuração via código Java trouxe benefícios, como evitar erros de digitação, porque a classe de configuração precisa ser compilada. Mas nós precisamos escrever muito código explicitamente
- Com toda essa configuração excessiva, o desenvolvedor perde o foco na coisa mais importante: desenvolver as regras de negócio da aplicação. Talvez a maior revolução e o maior acerto dos projetos Spring, foi o Spring Boot. Com ele você alcança um novo paradigma para desenvolver aplicações Spring com pouco esforço. O Spring Boot trouxe agilidade, e te possibilita focar nas funcionalidades da sua aplicação com o mínimo de configuração.
- Vale destacar que, toda essa “mágica” que o Spring Boot traz para o desenvolvimento Spring, não é realizado com geração de código. Não, o Spring Boot não gera código! Ele simplesmente analisa o projeto e automaticamente o configura.
- É claro que é possível customizar as configurações, mas o Spring Boot segue o padrão que a maioria das aplicações precisa, então, muitas vezes não é preciso fazer nada. Se você já trabalha com o Maven, sabe que precisamos adicionar várias dependências no arquivo pom.xml, que pode ficar extenso, com centenas de linhas de configuração, mas com o Spring Boot podemos reduzir muito com os starters que ele fornece
- Os starters são dependências que agrupam outras dependências, assim, se você precisa trabalhar com JPA e Hibernate, por exemplo, basta adicionar uma única entrada no pom.xml, que todas as dependências necessárias serão adicionadas ao classpath
- É claro que é possível customizar as configurações, mas o Spring Boot segue o padrão que a maioria das aplicações precisa, então, muitas vezes não é preciso fazer nada. Se você já trabalha com o Maven, sabe que precisamos adicionar várias dependências no arquivo pom.xml, que pode ficar extenso, com centenas de linhas de configuração, mas com o Spring Boot podemos reduzir muito com os starters que ele fornece
- Vale destacar que, toda essa “mágica” que o Spring Boot traz para o desenvolvimento Spring, não é realizado com geração de código. Não, o Spring Boot não gera código! Ele simplesmente analisa o projeto e automaticamente o configura.
- Com toda essa configuração excessiva, o desenvolvedor perde o foco na coisa mais importante: desenvolver as regras de negócio da aplicação. Talvez a maior revolução e o maior acerto dos projetos Spring, foi o Spring Boot. Com ele você alcança um novo paradigma para desenvolver aplicações Spring com pouco esforço. O Spring Boot trouxe agilidade, e te possibilita focar nas funcionalidades da sua aplicação com o mínimo de configuração.
- A configuração via código Java trouxe benefícios, como evitar erros de digitação, porque a classe de configuração precisa ser compilada. Mas nós precisamos escrever muito código explicitamente
- Enquanto os componentes do Spring eram simples, sua configuração era extremamente complexa e cheia de XMLs. Depois de um tempo, a partir da versão 3.0, a configuração pôde ser feita através de código Java.
O Thymeleaf
- A view irá retornar apenas um HTML para o browser do cliente, mas isso deixa uma dúvida: Como ela recebe os objetos Java, enviados pelo controller, e os transforma em HTML? Nessa hora que entra em ação o Thymeleaf!
- Teremos um código HTML misturado com alguns atributos do Thymeleaf, que após processado, será gerado apenas o HTML para ser renderizado no browser do cliente. O Thymeleaf não é um projeto Spring, mas uma biblioteca que foi criada para facilitar a criação da camada de view, com uma forte integração com o Spring, e uma boa alternativa ao JSP
- O principal objetivo do Thymeleaf é prover uma forma elegante e bem formatada para criarmos nossas páginas. O dialeto do Thymeleaf é bem poderoso, como você verá no desenvolvimento da aplicação, mas você também pode estendê-lo para customizar, de acordo com suas necessidades.
- Para você ver como ele funciona, vamos analisar o código abaixo. <tr th:each="convidado : ${convidados}"> <td th:text="${convidado.nome}"></td> <td th:text="${convidado.quantidadeAcompanhantes}"></td> </tr> A expressão ${} interpreta variáveis locais ou disponibilizadas pelo controller. O atributo th:each itera sobre a lista convidados, atribuindo cada objeto na variável local convidado. Isso faz com que vários elementos tr sejam renderizados na página. Dentro de cada tr existem 2 elementos td. O texto que eles irão exibir vem do atributo th:text, junto com a expressão ${}, lendo as propriedades da variável local convidado.
- O principal objetivo do Thymeleaf é prover uma forma elegante e bem formatada para criarmos nossas páginas. O dialeto do Thymeleaf é bem poderoso, como você verá no desenvolvimento da aplicação, mas você também pode estendê-lo para customizar, de acordo com suas necessidades.
- Teremos um código HTML misturado com alguns atributos do Thymeleaf, que após processado, será gerado apenas o HTML para ser renderizado no browser do cliente. O Thymeleaf não é um projeto Spring, mas uma biblioteca que foi criada para facilitar a criação da camada de view, com uma forte integração com o Spring, e uma boa alternativa ao JSP
- A view irá retornar apenas um HTML para o browser do cliente, mas isso deixa uma dúvida: Como ela recebe os objetos Java, enviados pelo controller, e os transforma em HTML? Nessa hora que entra em ação o Thymeleaf!
Maven
- O Maven é uma ferramenta muito importante no dia a dia do desenvolvedor Java, porque com ele nós conseguimos automatizar uma série de tarefas. Mas talvez o que mais fez o Maven ter sucesso, foi o gerenciamento de dependências. É muito bom poder escrever algumas linhas e já ter a biblioteca disponível para o nosso projeto.
O Spring Tool Suite - STS
- O Spring Tool Suite, ou STS, é um Eclipse com vários plugins úteis para o trabalho com o Spring.
Images and files in the map
Information
- Description
- mapa mental sobre spring
- Created by
- Douglas Rodrigues
- Views
- 6
- Tags
- History
-
- Created by Douglas Rodrigues · Apr 4, 2022
- Copied by Douglas Rodrigues · Apr 4, 2022
- Rating