org.springframework

org.springframework

1. Introdução

O Spring Framework fornece um modelo de configuração e programação limpo e expressivo para aplicativos empresariais modernos baseados em Java que podem ser executados em qualquer plataforma de implantação.

Este artigo cobre a visão geral de alto nível da estrutura Spring e, principalmente, o pacoteorg.springframework que fornece suporte para injeção de dependência, gerenciamento de transações, aplicativos da web, acesso a dados, mensagens, testes e muito mais.

2. Recursos

O Spring framework oferece uma lista abrangente de recursos:

  • Aplicativo da Web Spring MVC e estrutura de serviço da Web RESTful

  • Programação Orientada a Aspectos, incluindo gerenciamento de transações declarativas de Spring

  • Injeção de dependência

  • Inversão de controle

e muito mais.

3. Dependências do Maven

Se quiser adicionar Spring ao seu projeto Maven, você pode encontrar mais informações sobre elehere.

4. Projetos de Primavera

O Framework inclui vários módulos e projetos diferentes. Desde a configuração até a segurança, aplicativos da Web e big data - quaisquer que sejam as necessidades de infraestrutura do seu aplicativo, existe um Projeto Spring para ajudá-lo a construí-lo.

Comece pequeno e use exatamente o que você precisa - o Spring é modular por design. Vejamos alguns desses projetos aqui.

4.1. Spring Web MVC

O frameworkWeb MVC fornece arquitetura Model-View-Controller, projetada em torno de umDispatcherServlet que lida com todas as solicitações e respostas HTTP e torna o aplicativo fracamente acoplado.

A melhor coisa é que você pode usar qualquer objeto como um objeto de comando ou formulário - não há necessidade de implementar uma interface específica de estrutura ou classe base. Sua ligação de dados é altamente flexível: por exemplo, trata incompatibilidades de tipo como erros de validação que podem ser avaliados pelo aplicativo, não como erros do sistema.

Aqui você pode encontrar oguide completo.

4.2. Plataforma Spring IO

IO Platform define um conjunto de dependências (tanto dependências do Spring Framework quanto bibliotecas de terceiros) que podem ser incluídas em um projeto Java para permitir que você escolha as dependências necessárias sem se preocupar com a compatibilidade entre suas versões (porque Spring IO garante isso )

A plataforma IO é certificada para funcionar com Java 7 e 8.

Dê uma olhada emthe GitHub project.

4.3. Spring Boot

Spring Boot facilita a criação de aplicativos autônomos baseados em Spring de nível de produção que você pode “simplesmente executar”. Facilita a criação de um aplicativo com Spring com um mínimo de trabalho.

Um aplicativo criado com ele pode ser amplamente configurado automaticamente com alguns padrões sensíveis e, depois disso, pode ser aprimorado com métricas (quantas solicitações, quanto tempo demoraram etc.).

Consiste em vários módulos (opcionais):

  1. CLI - Uma interface de linha de comando, baseada em Groovy, para iniciar / parar aplicativos criados com boot de primavera.

  2. Boot Core - A base para outros módulos.

  3. Auto-configure - Módulo para configurar automaticamente uma ampla variedade de projetos Spring. Ele detectará a disponibilidade de certas estruturas (Spring Batch, Spring Data JPA, Hibernate, JDBC).

  4. Actuator - Este projeto, quando adicionado, ativará certos recursos corporativos (páginas de segurança, métricas, erro padrão) para seu aplicativo.

  5. Starters - Diferentes projetos de início rápido para incluir como uma dependência em seu arquivo de compilação Maven ou Gradle. Ele terá as dependências necessárias para esse tipo de aplicativo. Atualmente, existem projetos iniciais para um projeto da Web (baseado em tomcat e jetty), existem Spring Batch, Spring Data JPA, Spring Integration, Spring Security.

  6. Tools - A ferramenta de compilação Maven e Gradle, bem como o Spring Boot Loader personalizado (usado no único jar / war executável) estão incluídos neste projeto.

Podemos encontrar o artefato Mavenheree dar uma olhada emthe GitHub project.

4.4. Dados da Primavera

A missão deSpring Data é fornecer um modelo de programação baseado em Spring familiar e consistente para acesso a dados, mantendo as características especiais do armazenamento de dados subjacente.

O objetivo principal deste projeto é facilitar a criação de aplicativos com tecnologia Spring que usam novas tecnologias de acesso a dados, como bancos de dados não relacionais, estruturas de redução de mapas e serviços de dados baseados em nuvem, além de fornecer suporte aprimorado para tecnologias de banco de dados relacional .

Este é um projeto abrangente que contém muitos subprojetos que são específicos para um determinado banco de dados (comoJPA,MongoDB,Redis,Apache Solr,Gemfire, Apache Cassandra). Os projetos são desenvolvidos trabalhando em conjunto com muitas das empresas e desenvolvedores que estão por trás dessas tecnologias interessantes.

4.5. Spring Security

Spring Security é uma estrutura que se concentra em fornecer autenticação e autorização para aplicativos Java. Como todos os projetos do Spring, o poder real do Spring Security é encontrado na facilidade com que pode ser estendido para atender aos requisitos personalizados. Ele é lançado emApache 2.0 license para que você possa usá-lo com segurança em seus projetos.

Também é fácil aprender, implantar e gerenciar. Possui um namespace de segurança dedicado, que fornece diretrizes para as operações mais comuns, permitindo segurança completa do aplicativo em apenas algumas linhas de XML e pode proteger seus aplicativos contra ataques como fixação de sessão, clickjacking, falsificação de solicitação entre sites etc.

O Spring Security também está integrado a muitas outras tecnologias Spring, incluindo o Spring Web Flow, o Spring Web Services e o Pivotal tc Server.

Dê uma olhada emFAQs de segurança do Spring para ter uma visão mais profunda e a página de dependênciaMaven. Além disso, dê uma olhada nos tutoriais de segurança do Spring paraAuthentication,Registration esetup Segurança do Spring com Maven.

4.6. Spring Social

Spring Social é uma extensão da estrutura que permite que os aplicativos se conectem a provedores de software como serviço, como Twitter, Facebook e outras APIs baseadas em autenticaçãoOAuth. Ele fornece uma estrutura de autenticação OAuth pronta para uso para aplicativos baseados na Web.

Recursos:

  • Uma estrutura extensível de provedor de serviços que simplifica bastante o processo de conexão de contas de usuário local a contas de provedor hospedadas.

  • Um controlador de conexão que lida com o fluxo de autorização entre seu aplicativo da web Java / Spring, um provedor de serviços e seus usuários.

  • Ligações Java a APIs de provedores de serviços populares, como Facebook, Twitter, LinkedIn, TripIt e GitHub.

  • Um controlador de entrada que permite que os usuários se autentiquem com seu aplicativo entrando através de um provedor de serviços.

Guias de Introdução:

O Spring fornece alguns exemplos de projetosGitHub para fazer você começar rapidamente eSpring Social reference também é útil com uma páginaquick start.

4.7. Spring Shell

Spring Shell é um shell interativo que pode ser facilmente estendido com comandos usando um modelo de programação baseado em Spring.

Os usuários do projeto shell podem construir facilmente um aplicativo shell completo (linha de comandoaka), dependendo do jar do Spring Shell e adicionando seus próprios comandos (que vêm como métodos em spring beans). Criar um aplicativo de linha de comando pode ser útile.g. para interagir com a API REST do seu projeto ou para trabalhar com conteúdo de arquivo local.

The GitHub project pode ser encontrado aqui.

4.8. Spring Mobile

Spring Mobile é uma extensão do framework eSpring Web MVC que visa simplificar o desenvolvimento de aplicativos móveis da web.

O Spring Mobile é uma estrutura que fornece recursos para detectar o tipo de dispositivo que faz uma solicitação ao site da Spring e oferece visualizações alternativas com base nesse dispositivo. Como todos os projetos do Spring, o poder real do Spring Mobile é encontrado na facilidade com que pode ser estendido. Recursos:

  • Uma abstração do resolvedor de dispositivos para detecção no lado do servidor de dispositivos móveis e tablets

  • Gerenciamento de preferências do site que permite ao usuário indicar se prefere uma experiência "normal", "móvel" ou "tablet"

  • Um alternador de site capaz de alternar o usuário para o site mais apropriado, móvel, tablet ou normal, com base no dispositivo dele e, opcionalmente, indicou uma preferência de site

  • Gerenciamento de exibição com reconhecimento de dispositivo para organizar e gerenciar visualizações diferentes para dispositivos específicos.

Estesample application irá ajudá-lo a começar rapidamente.

Você também podedetect a device, manipularwebsite preference ou servir conteúdo da web móvel com Spring MVC.

4.9. Lote de Primavera

Spring Batch é uma estrutura leve e abrangente destinada a permitir o desenvolvimento de aplicativos em lote vitais para as operações diárias de sistemas corporativos.

Aplicativos em lote nesse contexto se referem a sistemas offline automatizados direcionados ao processamento de dados em massa. O Spring Batch automatiza essa iteração básica em lote, fornecendo a capacidade de processar transações semelhantes a um conjunto, geralmente em um ambiente offline sem nenhuma interação do usuário.

O Spring Batch trabalha lendo dados com um tamanho de bloco configurável de uma fonte de dados, processando-os e finalmente gravando-os em um recurso.

A fonte de dados para o leitor pode ser arquivos simples (arquivo de texto, arquivo XML, arquivo CSV ...), banco de dados relacional (MySQL ...), MongoDB. Da mesma forma, um gravador pode gravar dados em arquivos simples, bancos de dados relacionais, MongoDB, mailer etc.

Comece rapidamente porCreating a Batch Servicee com outro lote de Springresources.

5. Pacotes principais da mola

Aqui, vamos dar uma olhada nos pacotes principais do Spring.

  • org.springframework.cache - Este pacote suporta subpacotes e classes para gerenciamento de cache declarativo, configuração do cache de código aberto na bibliotecaCaffeine, classes de suporte para o cache de código abertoEhCache 2.x.

  • org.springframework.context - Este pacote baseia-se no pacote de beans para adicionar suporte para fontes de mensagens e para o padrão de design Observer, e a capacidade de objetos de aplicativos para obter recursos usando uma API consistente.

  • org.springframework.core - Fornece classes básicas para tratamento de exceções e detecção de versão e outros auxiliares principais que não são específicos para nenhuma parte do framework.

  • org.springframework.expression - Este pacote fornece abstrações básicas por trás deSpring Expression Language.

  • org.springframework.http - Este pacote contém uma abstração básica sobre HTTP do lado do cliente / servidor.

  • org.springframework.jdbc - As classes neste pacote tornam o JDBC mais fácil de usar e reduzem a probabilidade de erros comuns.

  • org.springframework.jms - Este pacote contém classes de integração para JMS, permitindo acesso JMS estilo Spring.

  • org.springframework.jndi - As classes neste pacote tornam o JNDI mais fácil de usar, facilitando o acesso à configuração armazenada no JNDI e fornecem superclasses úteis para as classes de acesso JNDI.

  • org.springframework.orm.hibernate5 - Pacote que fornece integração deHibernate 5.x com conceitos Spring.

  • org.springframework.test.util - Classes de utilidade geral para uso em testes de unidade e integração.

Esta lista é limitada e descreve apenas os principais pacotes do framework Spring. Você pode encontrar a lista completahere.

6. Conclusão

Neste artigo de visão geral rápida, vimos vários projetos que estão presentes no ecossistema Spring e fizemos uma rica coleção de dependências do Maven, os projetos GitHub e os recursos abrangentes que cada projeto oferece para tornar nossos aplicativos Web seguros, escaláveis ​​e fáceis de gerenciar. viver com.

Também vimos os pacotes principais que nos fornecem o poder de focar em um aspecto lógico de nossos aplicativos.