O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Spring

Douglas Rodrigues Spring Analista Português

Spring

Conteúdo do mapa

Spring

  1. áres cobertas pelo ecossistema Spring

    • Spring Data
      • Acesso de banco de dados
    • Spring security
      • prover segurança
    • cloud computing
    • big data
  2. 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
  3. 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
            • 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
  4. funcionalidade

  5. 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.
  6. 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
  7. 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
  8. 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.
  9. 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.
  10. O Spring Tool Suite - STS

    • O Spring Tool Suite, ou STS, é um Eclipse com vários plugins úteis para o trabalho com o Spring.

Imagens e arquivos do mapa

  • Spring

Informações

Descrição
mapa mental sobre spring
Visualizações
6
Histórico
  • Criado por Douglas Rodrigues · 4 abr 2022
  • Copiado por Douglas Rodrigues · 4 abr 2022
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?