目录
作为Java程序员,我们都听说过Spring,也都使用过Spring的相关产品,它使每个人可以快速、轻松地、安全地进行Java编程开发,它是迄今为止世界上最受欢迎的Java框架。那我们平常经常说的Spring、Spring Framework、SpringBoot,它们之间又有何区别和联系呢?
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生态的其中一个重要项目,是一个开源的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模块。
官网上的解释:
Spring Boot也是Spring生态中一个及其重要的项目,其设计目的是用来简化Spring应用的初始搭建以及开发过程。Spring Boot基于Spring框架开发,目标是使得开发人员不再需要定义大量的XML配置文件,尽可能的自动配置Spring应用,同时直接嵌入Tomcat、Jetty或Undertow,提供生产就绪功能,为更快、更高效地开发应用程序铺平道路。Spring Boot应用通常可以以Jar包的形式独立运行,只需要通过命令java -jar xxx.jar即可运行。
官网上的解释:
第一步:创建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构建工程,见另一篇文章:从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可能更加适合。