当前位置: 首页 > news >正文

Spring Framework和SpringBoot的区别

目录

一、前言

二、什么是Spring

三、什么是Spring Framework

四、什么是SpringBoot

五、使用Spring Framework构建工程

六、使用SpringBoot构建工程

七、总结


一、前言

作为Java程序员,我们都听说过Spring,也都使用过Spring的相关产品,它使每个人可以快速、轻松地、安全地进行Java编程开发,它是迄今为止世界上最受欢迎的Java框架。那我们平常经常说的Spring、Spring Framework、SpringBoot,它们之间又有何区别和联系呢?

二、什么是Spring

Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world's most popular Java framework. 这是Spring官网对它的解释。

Spring的项目有:Spring Boot、Spring Framework、Spring Data、 Spring Cloud、Spring Cloud Data Flow、Spring Security、 Spring For GraphQL、 Spring Session、Spring Integration、Spring HATEOAS、Spring Batch等。

三、什么是Spring Framework

Spring Framework是Spring生态的其中一个重要项目,是一个开源的Java应用程序框架,为企业级应用程序提供了一个全面的编程和配置模型,集成了IoC、DI和AOP容器技术的框架。Spring Framework的模块结构如下:

1. Core Container(核心容器):包含基本的IoC和DI功能,包括Beans、Context和Core模块。

2. Data Access/Integration(数据访问/集成):提供数据访问和集成功能,包括JDBC、ORM、JMS和Transaction模块。

3. Web:提供Web应用程序开发功能,包括Web、WebSocket和安全模块。

4. AOP(面向切面编程):提供面向切面编程功能,包括Aspects和Aop模块。

5. Instrumentation(工具):提供Java Instrumentation功能,包括Instrumentation模块。

6. Test(测试):提供测试功能,包括Test模块。

官网上的解释:

四、什么是SpringBoot

Spring Boot也是Spring生态中一个及其重要的项目,其设计目的是用来简化Spring应用的初始搭建以及开发过程。Spring Boot基于Spring框架开发,目标是使得开发人员不再需要定义大量的XML配置文件,尽可能的自动配置Spring应用,同时直接嵌入Tomcat、Jetty或Undertow,提供生产就绪功能,为更快、更高效地开发应用程序铺平道路。Spring Boot应用通常可以以Jar包的形式独立运行,只需要通过命令java -jar xxx.jar即可运行。

官网上的解释:

五、使用Spring Framework构建工程

第一步:创建Maven工程,点击Next

第二步:输入GroupId和ArtifactId,点击Next

 第三步:完成工程创建

 第四步:添加maven依赖,在pom文件中添加spring-context依赖,spring-context管理spring的上下文

 

第五步:创建Spring配置文件,在resources文件夹下创建spring-confit.xml文件,在resources上右键-->New-->XML Configuration File-->Spring Config

 第六步:添加启动类,启动成功,说明spring的容器创建成功。

接下来,我们继续介绍Bean的管理

第七步:添加spring-beans依赖, spring-beans用于管理对象。

 第八步:添加一个user bean,并配置spring-config.xml,修改main函数,读取user对象,读取成功,说明容器中初始化了user对象

 

 

 除了使用ApplicationContext外,还可以使用BeanFactory来管理上下文对象,代码如下:

 ApplicationContext和BeanFactory的区别:

1. AppilcationContext是BeanFactory的子类,ApplicationContext拥有更多功能。从源码中可以看出。

2.加载Bean的机制不同,BeanFactory懒加载,按需加载,ApplicationContext则是一次性加载所有的Bean对象。

3.从第二个区别可以看出,ApplicationContext启动相对BeanFactory肯定慢,但是BeanFactory在后期获取对象非常慢。 

六、使用Spring Boot构建工程

使用Spring Boot构建工程,见另一篇文章:从0到1实战,快速搭建SpringBoot工程。本文不再赘述。

七、总结

本文介绍了Spring、Spring Framework、SpringBoot分别是什么以及相互的关系,Spring Framework和Spring Boot的主要区别:

1. 简化开发:Spring Boot通过自动配置,极大地简化了Spring应用程序的开发过程。

2. 微服务支持: Spring Boot特别适合微服务架构,它提供了自动注册和发现、容错处理、健康检查等功能,简化了微服务的开发和部署过程。

3. 启动速度,由于Spring Boot简化了配置和依赖管理,使得Spring Boot应用程序的启动速度更快。

4. 学习曲线:Spring Boot简化了开发过程,因此学习曲线相对平缓,而使用Spring Framework需要掌握更多的概念和配置方式,学习曲线相对陡峭。

在项目中,选择哪个框架需要根据实际的情况来进行选择,如果需要快速构建,并且更注重简化开发和微服务支持,那么SpringBoot可能是更好的选择;而需要构建复杂的、高度可扩展的应用程序,那么Spring Framework可能更加适合。

相关文章:

  • 科研绘图(二)气泡图
  • 揭秘虾皮API接口:开启电商开发新篇章,引领业务增长潮流
  • 平复焦虑,拒绝精神内耗——中国人民大学与加拿大女王大学金融硕士项目
  • PHP企业物资管理系统源码带文字安装教程
  • ubuntu20固定串口名称
  • ubuntu设定时间与外部ntp同步
  • SpringBoot使用过滤器进行接口签名防参数篡改
  • FlinkOnYarn 监控 flink任务
  • JS-DOM树和DOM对象
  • 训练营第四十二天 | 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集
  • 一端进,两端出(队列)C++
  • 2024年,软件测试还有未来吗?
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • Jmerer之FTP测试
  • 自动化测试框架pytest系列之21个命令行参数介绍(二)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • Android优雅地处理按钮重复点击
  • Debian下无root权限使用Python访问Oracle
  • JavaScript 一些 DOM 的知识点
  • python docx文档转html页面
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 初识MongoDB分片
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 实现菜单下拉伸展折叠效果demo
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 一道面试题引发的“血案”
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • zabbix3.2监控linux磁盘IO
  • 积累各种好的链接
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Linux(Source Insight安装及工程建立)
  • $.each()与$(selector).each()
  • %check_box% in rails :coditions={:has_many , :through}
  • (20050108)又读《平凡的世界》
  • (23)Linux的软硬连接
  • (3)llvm ir转换过程
  • (附源码)springboot教学评价 毕业设计 641310
  • (九)信息融合方式简介
  • (论文阅读40-45)图像描述1
  • (一)Linux+Windows下安装ffmpeg
  • (已解决)什么是vue导航守卫
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET CLR Hosting 简介
  • .NET Core 版本不支持的问题
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net IE10 _doPostBack 未定义
  • .NET Remoting学习笔记(三)信道
  • .NET关于 跳过SSL中遇到的问题
  • .NET开发者必备的11款免费工具
  • .NET应用架构设计:原则、模式与实践 目录预览