目录
一、前言
二、什么是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可能更加适合。