当前位置: 首页 > 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可能更加适合。

http://www.lryc.cn/news/275630.html

相关文章:

  • 2024--Django平台开发-Django知识点(三)
  • Github 2024-01-08开源项目周报 Top14
  • vue3 的内置组件汇总
  • ARM工控机Node-red使用教程
  • Visual Studio 发布程序自动更新 ClickOnce和AutoUpdater测试
  • Codeforces Round 761 (Div. 2) E. Christmas Chocolates(思维题 树的直径 二进制性质 lca)
  • 知识图谱之汽车实战案例综述与前瞻分析
  • 网关Gateway
  • java 生成一个当前时间的时间搓
  • 金融中IC和IR的定义
  • Git(2):Git环境的安装
  • Pytest单元测试系列[v1.0.0][pytest插件常用技巧]
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第五天-Linux消息共享内存练习题(物联技术666)
  • 04set注入专题/简单类型/数组/List/Set/Map/空字符串/null/特殊符号
  • Linux引导和服务管理
  • HarmonyOS 应用开发学习笔记 ets自定义组件及其引用 @Component自定义组件
  • 在做题中学习(43):长度最小的子数组
  • 如何将 element-ui 中的 el-select 默认展开
  • Typora基本用法
  • 读元宇宙改变一切笔记02_元素(上)
  • 听GPT 讲Rust源代码--compiler(2)
  • SpringCloud系列篇:核心组件之负载均衡组件
  • 多线程模板应用实现(实践学习笔记)
  • Linux系统中MYSQL重置密码(针对root忘记密码)
  • 蓝桥杯基础知识1 字母大小写转换
  • 攀登者1 - 华为OD统一考试
  • 通信原理期末复习——基础小题汇总(二)
  • 代码随想录刷题第四十二天| 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集
  • 前端开发加速器:十个VSCode插件精选
  • 剑指offer面试题3 二维数组中的查找