Sabe qual é a diferença entre Spring e Spring Boot? Essa é a lacuna

Compartilhe e compartilhe seus próprios materiais de aprendizagem. Amigos em necessidade podem me encontrar para

De acordo com sua própria experiência de entrevista e constantemente coletados (edição de colecionador)

[Recomendado] A mais recente coleção de e-books Java em 2020.pdf (Hematemesis) >>>

 https://www.cnblogs.com/xiaogeng88/p/12692306.html

Acredito que muitos parceiros pequenos, como eu, costumam usar o Spring e o Spring Boot, mas simplesmente não estudaram a diferença entre os dois?

Venha para o grande segredo hoje ↓

Visão geral

Quanto à diferença entre o Spring e o SpringBoot, ouvi muitas respostas: quando comecei a aprender o SpringBoot, também fiquei confuso.Com o acúmulo de experiência, entendi lentamente a diferença entre essas duas estruturas. Para os alunos que usam o Spring Boot por um longo tempo, eles ainda não entendem a diferença entre o Spring Boot e o Spring. Depois de ler a comparação no artigo, talvez você tenha respostas e opiniões diferentes!

O que é a primavera

Como desenvolvedores de Java, todos estão familiarizados com o Spring. Em resumo, a estrutura do Spring fornece suporte abrangente à infraestrutura para o desenvolvimento de aplicativos Java. Ele contém alguns recursos bons, como injeção de dependência e módulos prontos para o uso, como: SpringJDBC, SpringMVC, SpringSecurity, SpringAOP, SpringORM, SpringTest. Esses módulos diminuem o tempo de desenvolvimento dos aplicativos e melhoram a eficiência do desenvolvimento de aplicativos. Nos estágios iniciais do desenvolvimento JavaWeb, precisamos escrever muito código para inserir registros no banco de dados. Mas, usando o JDBCTemplate do módulo SpringJDBC, podemos simplificar a operação para algumas linhas de código.

O que é o Spring Boot

O SpringBoot é basicamente uma extensão da estrutura do Spring, que elimina a configuração XML necessária para configurar aplicativos Spring, abrindo caminho para um ecossistema de desenvolvimento mais rápido e eficiente.

SpringBoot中的一些特征:
1、创建独立的 Spring应用。
2、嵌入式 Tomcat、 Jetty、 Undertow容器(无需部署war文件)。 3、提供的 starters 简化构建配置 4、尽可能自动配置 spring应用。 5、提供生产指标,例如指标、健壮检查和外部化配置 6、完全没有代码生成和 XML配置要求 

Da análise de configuração

Dependência do Maven

Primeiro, vamos dar uma olhada nas dependências mínimas necessárias para criar um aplicativo Web usando o Spring

Spring Maven

Diferentemente do Spring, o Spring Boot precisa apenas de uma dependência para iniciar e executar o aplicativo Web:

SpringBoot Maven

Durante a construção, todas as outras dependências são adicionadas automaticamente ao projeto.

Outro bom exemplo é a biblioteca de teste. Geralmente usamos as bibliotecas SpringTest, JUnit, Hamcrest e Mockito. No projeto Spring, devemos adicionar todas essas bibliotecas como dependências. Porém, no SpringBoot, precisamos adicionar apenas a dependência do spring-boot-starter-test para incluir automaticamente essas bibliotecas.

Spring Boot为不同的Spring模块提供了许多依赖项。一些最常用的是:
spring-boot-starter-data-jpaspring-boot-starter-securityspring-boot-
starter-testspring-boot-starter-webspring-boot-starter-thymeleaf
有关 starter的完整列表,请查看Spring文档。 

Configuração MVC

Vamos dar uma olhada na configuração requerida pelo Spring e SpringBoot para criar aplicativos JSPWeb.

O Spring precisa definir o servlet do planejador, o mapeamento e outras configurações de suporte. Podemos usar o arquivo web.xml ou a classe Initializer para fazer isso:

Configuração MVC

Você também precisa adicionar a anotação @EnableWebMvc à classe @Configuration e definir um resolvedor de exibição para analisar a exibição retornada do controlador

Agendamento MVC

Vamos dar uma olhada no SpringBoot. Depois de adicionar o programa de inicialização da Web, o SpringBoot precisa apenas configurar algumas propriedades no arquivo de configuração do aplicativo para concluir as operações acima:

SpringBoot mvc

Toda a configuração do Spring acima é incluída automaticamente adicionando um iniciador do Bootweb através de um processo chamado configuração automática.

Isso significa que o SpringBoot examinará as dependências, propriedades e beans existentes no aplicativo e configurará as propriedades e beans de acordo com essas dependências. Obviamente, se queremos adicionar nossa própria configuração personalizada, a configuração automática do SpringBoot será retornada.

Configurar mecanismo de modelo

Agora vamos ver como configurar o mecanismo de modelo Thymeleaf no Spring e no Spring Boot.

No Spring, precisamos adicionar a dependência thymeleaf-spring5 e alguma configuração para o resolvedor de exibição:

mecanismo de modelo de mola

O SpringBoot1X requer apenas a dependência do spring-boot-starter-thymeleaf para ativar o suporte ao Thymeleaf em aplicativos da web. Porém, devido aos novos recursos do Thymeleaf 3.0, devemos adicionar o thymeleaf-layout-dialect como uma dependência no aplicativo SpringBoot2XWeb. Após configurar as dependências, podemos adicionar os modelos à pasta src / main / resources / templates, e o SpringBoot os exibirá automaticamente.

Configuração Spring Security

Para simplificar, usamos a autenticação HTTPBasic padrão da estrutura. Vamos primeiro examinar as dependências e a configuração necessárias para ativar a Segurança usando o Spring.

O Spring precisa primeiro confiar nos módulos spring-security-web e spring-security-config. Em seguida, precisamos adicionar uma classe que estenda o WebSecurityConfigurerAdapter e anote-a com @EnableWebSecurity:

Configuração Spring Security

Aqui usamos inMemoryAuthentication para configurar a autenticação. Da mesma forma, o Spring Boot precisa dessas dependências para fazê-lo funcionar. Mas precisamos apenas definir a dependência do spring-boot-starter-security, porque isso adicionará automaticamente todas as dependências relacionadas ao caminho de classe.

A configuração de segurança no SpringBoot é a mesma que acima.

Configuração de inicialização de inicialização do aplicativo

A diferença básica entre as orientações do aplicativo no Spring e no Spring Boot é o servlet. O Spring usa web.xml ou SpringServletContainerInitializer como seu ponto de entrada de inicialização. SpringBoot usa apenas a função Servlet3 para orientar o aplicativo, vamos entender em detalhes abaixo

Configuração de inicialização do Spring

O Spring suporta o método tradicional de inicialização web.xml e o método Servlet3 + mais recente.

Etapas para configurar a inicialização do método web.xml

O contêiner de servlet (servidor) lê web.xml

DispatcherServlet definido em web.xml é instanciado pelo contêiner

DispatcherServlet cria WebApplicationContext lendo WEB-INF / {servletName} -servlet.xml. Por fim, DispatcherServlet registra os beans definidos no contexto do aplicativo

Etapas de inicialização da primavera usando o método Servlet3 +

O contêiner procura por classes que implementam ServletContainerInitializer e executa SpringServletContainerInitializer para localizar todas as classes que implementam WebApplicationInitializer

WebApplicationInitializer cria um DispatcherServlet com XML ou contexto @Configuration classe WebApplicationInitializer cria um contexto criado anteriormente.

Configuração de inicialização do SpringBoot

O ponto de entrada de um aplicativo Spring Boot é uma classe anotada com @SpringBootApplication

Configuração de inicialização do SpringBoot

Por padrão, o SpringBoot usa contêineres incorporados para executar aplicativos. Nesse caso, o SpringBoot usa o ponto de entrada publicstaticvoidmain para iniciar o servidor da Web incorporado. Além disso, também é responsável por vincular o Servlet, Filter e ServletContextInitializerbean do contexto do aplicativo ao contêiner do servlet incorporado. Outro recurso do SpringBoot é que ele verifica automaticamente todas as classes no mesmo pacote ou componentes nos subpacotes da classe Main.

O SpringBoot fornece uma maneira de implantá-lo em contêineres externos. Só precisamos estender o SpringBootServletInitializer:

Configuração de inicialização do SpringBoot

Aqui, o contêiner de servlet externo procura a classe Main definida no arquivo MANIFEST.MF na pasta META-INF, no pacote war. SpringBootServletInitializer será responsável por vincular o Servlet, Filter e ServletContextInitializer.

Empacotar e implantar

Prefácio: Na verdade, o empacotamento e a implantação envolvem pouco, mas também existe um entendimento simples

Por fim, vamos ver como empacotar e implantar o aplicativo. Ambas as estruturas suportam tecnologias comuns de gerenciamento de pacotes, como Maven e Gradle. Mas em termos de implantação, essas estruturas são muito diferentes. Por exemplo, o plug-in Spring Boot Maven fornece suporte para Spring Boot no Maven. Ele também permite empacotar jar executável ou pacotes war e executar aplicativos no local.

在部署环境中 SpringBoot 对比 Spring的一些优点包括:
1、提供嵌入式容器支持 2、使用命令java -jar独立运行jar 3、在外部容器中部署时,可以选择排除依赖关系以避免潜在的jar冲突 4、部署时灵活指定配置文件的选项 5、用于集成测试的随机端口生成 

Conclusão

Em resumo, podemos dizer que o SpringBoot é apenas uma extensão do Spring, tornando o desenvolvimento, o teste e a implantação mais convenientes.

Acho que você gosta

Origin www.cnblogs.com/xiaogeng88/p/12713392.html
Recomendado
Clasificación