Spring 与 SpringBoot 的区别
概述
Spring 与 SpringBoot 有什么区别???梳理一下 Spring 和 SpringBoot 到底有什么区别,从 Spring 和 SpringBoot 两方面入手。
Spring
什么是 Spring?在我看来,Spring 作为一款 Java 开发的必选框架,也是一款“胶水”框架,它解决了 Java 企业级开发的复杂度问题,所谓的复杂度问题,就是耦合度问题。
传统开发需要开发人员手动管理对象关系和生命周期,Spring 框架提出了两大核心:IOC 与 AOP。有效的管理了开发中对象的生命周期问题,也提供了与很多框架整合的工具。
但是,Spring 最大的弊端,需要大量的 XML 配置,不管项目整体大小,都需要大量的配置文件搭建架构。
Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块,如:
Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test
这些模块大家应该都用过吧,这些模块缩短应用程序的开发时间,提高了应用开发的效率
SpringBoot
SpringBoot 可以看作是对 Spring 框架的扩展,可以快速搭建独立的 Spring 应用程序。
它内嵌了 Tomcat,Jetty 等容器,项目是一个 jar 包,通过 Application 入口类快速运行整个项目,提供了 Pom 简化 Maven 的配置,避免了项目包与包的冲突,对第三方技术做了很好的封装。
我认为最重要的一点是,减少了大量的 XML 配置。SpringBoot 基于约定优于配置的理念,原先大量的配置都可以省去,并且不推荐 XML 配置,改为 Java 配置。主要的配置可以写在 apaplication.properties 文件中。
除了 application.properties 文件,还支持 yaml 格式的 application.yml 和 bootstrap.yml
差别在于配置文件的加载顺序不同。
Spring Boot 配置文件的加载顺序是 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
以下是Spring Boot中的一些特点:
1:创建独立的spring应用。
2:嵌入Tomcat, Jetty Undertow 而且不需要部署他们。
3:提供的“starters” pom来简化Maven配置
4:尽可能自动配置spring应用。
5:提供生产指标,健壮检查和外部化配置
6:绝对没有代码生成和XML配置要求
7. 通过starter和依赖管理解决依赖问题。
8. 通过自动配置,解决配置复杂问题。
拓展:
Spring 是怎样引导配置的呢?
Spring支持传统的web.xml引导方式以及最新的Servlet 3+方法。
让我们看一下 web.xml方法的步骤:
Servlet容器(服务器)读取web.xml
web.xml中定义的DispatcherServlet由容器实例化
DispatcherServlet通过读取WEB-INF / {servletName} -servlet.xml来创建WebApplicationContext
最后,DispatcherServlet注册在应用程序上下文中定义的bean
SpringBoot 又是如何配置的呢?
Spring Boot应用程序的入口点是使用@SpringBootApplication注释的类:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
默认情况下,Spring Boot使用嵌入式容器来运行应用程序。在这种情况下,Spring Boot使用public static void main入口点来启动嵌入式Web服务器。此外,它还负责将Servlet,Filter和ServletContextInitializer bean从应用程序上下文绑定到嵌入式servlet容器。
Spring Boot的另一个特性是它会自动扫描同一个包中的所有类或Main类的子包中的组件。
结论
简而言之,我们可以说Spring Boot只是Spring本身的扩展,使开发,测试和部署更加方便。
原文链接:https://blog.csdn.net/qq_36525300/article/details/102886871
https://blog.csdn.net/weixin_34177064/article/details/93029720
Spring 与 SpringBoot 的区别的更多相关文章
- Spring和SpringBoot比较,解惑区别
1.概述: 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,我相信 ...
- SpringMVC和Springboot的区别
转自站在浪潮之巅的原文SpringMVC和Springboot的区别(网摘) spring boot 我理解就是把 spring spring mvc spring data jpa 等等的一些常用的 ...
- 品Spring:SpringBoot和Spring到底有没有本质的不同?
现在的Spring相关开发都是基于SpringBoot的. 最后在打包时可以把所有依赖的jar包都打进去,构成一个独立的可执行的jar包.如下图13: 使用java -jar命令就可以运行这个独立的j ...
- Spring SpringMVC SpringBoot SpringCloud 注解整理大全
Spring SpringMVC SpringBoot SpringCloud 注解整理 才开的博客所以放了一篇以前整理的文档,如果有需要添加修改的地方欢迎指正,我会修改的φ(๑˃∀˂๑)♪ Spri ...
- Spring及SpringBoot @Async配置步骤及注意事项
前言 最近在做一个用户反馈的功能,就是当用户反馈意见或建议后服务端将意见保存然后发邮件给相关模块的开发者.考虑发邮件耗时的情况所以我想用异步的方法去执行,于是就开始研究Spring的@Async了.但 ...
- spring springMvc spring-boot spring-cloud分别是什么
本文来源于:克己习礼成仁 的<spring springMvc spring-boot spring-cloud分别是什么> 什么是spring 关于spring的定义无论是从官方还是 ...
- Spring @Configuration 和 @Component 区别
Spring @Configuration 和 @Component 区别 一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个 ...
- Spring与SpringMVC的区别
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring. 简单点的话可以将SpringMVC类比于Strut ...
- spring 或 springboot统一异常处理
spring 或 springboot统一异常处理https://blog.csdn.net/xzmeasy/article/details/76150370 一,本文介绍spring MVC的自定义 ...
随机推荐
- 为 Android 编译并集成 FFmpeg 的尝试与踩坑
前言与环境说明 随着 FFmpeg.NDK 与 Android Studio 的不断迭代,本文可能也会像我参考过的过期文章一样失效(很遗憾),但希望本文中提到的问题排查以及步骤说明能够帮到你,如果发现 ...
- 使用XAMPP创建Mysql数据库 要想在本地连接需要配置一下my.ini文件 配置如下:
# Example MySQL config file for small systems. # # This is for a system with little memory (<= 64 ...
- 日志收集之rsyslog to kafka
项目需要将日志收集起来做存储分析,数据的流向为rsyslog(收集) -> kafka(消息队列) -> logstash(清理) -> es.hdfs: 今天我们先将如何利用rsy ...
- centos7系列的网络yum源配置
因为新安装centos机器yum比较旧,主要是对网易源进行配置,其它源也差不多.我是在securecrt远程ssh工具操作的,非虚拟机软件上. yum install lszrz -y 安装上传工 ...
- html图片动态增加文字
<body> <!-- <div class="logo"> <img src="${imagePath}/disc.PNG" ...
- idea创建 springboot工程(支持jsp)
以前学springboot以前想搭建一个支持jsp的项目一直弄不上,现在发现用maven创建一个项目然后改成springboot效果一样的 https://blog.csdn.net/gisboygo ...
- IE 跨域设置
开发的时候会发现IE下跨域无法访问,报错: Failed to load resource: net::ERR_CONNECTION_REFUSED 解决方法有两种: 自己写代理服务,访问代理服务,代 ...
- Codeforces 986D - Perfect Encoding(FFT+爪巴卡常题)
题面传送门 题意:给出 \(n\),构造出序列 \(b_1,b_2,\dots,b_m\) 使得 \(\prod\limits_{i=1}^mb_i\geq n\),求 \(\sum\limits_{ ...
- NOIP 2020 游记
第一次写比赛游记,请多多指教! I. 考前 由于最近参加了太多太多比赛了,所以没有敲模板题: 考前一周:主要是在做 AtCoder 的题和 xjoi 的模拟赛,相当于恶补了一些套路吧! 考前一天:上午 ...
- mysql 实现某年单季度内的品牌TOPn销量在此年此单季度内销量占比
数据表: 结果表: mysql语句: