springboot架构图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 格式的 l 和 l
差别在于配置⽂件的加载顺序不同。
Spring Boot 配置⽂件的加载顺序是 bootstrap.properties -> l -> application.properties -> l
以下是Spring Boot中的⼀些特点:
1:创建独⽴的spring应⽤。
2:嵌⼊Tomcat, Jetty Undertow ⽽且不需要部署他们。
3:提供的“starters” pom来简化Maven配置
4:尽可能⾃动配置spring应⽤。
5:提供⽣产指标,健壮检查和外部化配置
6:绝对没有代码⽣成和XML配置要求
7. 通过starter和依赖管理解决依赖问题。
8. 通过⾃动配置,解决配置复杂问题。
拓展:
Spring 是怎样引导配置的呢?
Spring⽀持传统的l引导⽅式以及最新的Servlet 3+⽅法。
让我们看⼀下 l⽅法的步骤:
Servlet容器(服务器)读取l
DispatcherServlet通过读取WEB-INF / {servletName} -l来创建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本⾝的扩展,使开发,测试和部署更加⽅便。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论