Spring和SpringBoot的区别

大家好,我是升仔

1、 基本概念
Spring框架: Spring是一个开源的Java平台,自2003年以来一直是Java企业级应用开发的主导技术。它提供了一个全面的编程和配置模型,用于现代Java基于组件的应用。Spring的核心特性是依赖注入(DI)和面向切面编程(AOP)。

Spring Boot: Spring Boot是Spring的一个模块,它于2014年推出。Spring Boot的主要目标是简化Spring应用的初始搭建及开发过程。它通过“约定大于配置”的原则,提供了一套默认的配置,使得开发者可以快速启动和运行Spring应用。

2、 配置方式
Spring配置: 传统的Spring框架依赖于大量的XML配置,虽然后来也支持了基于注解的配置,但是整体上配置工作量较大。

// Spring XML配置示例

    

Spring Boot配置: Spring Boot极大地简化了配置过程。它支持基于Java的配置,并且自动配置了许多常用的组件。

// Spring Boot Java配置示例
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

注解@SpringBootApplication包含了@Configuration@EnableAutoConfiguration@ComponentScan,这些都是Spring Boot的核心注解,简化了配置。

3、 依赖管理
Spring依赖管理: 在Spring中,你需要手动声明项目中使用的所有依赖。



    org.springframework
    spring-core
    5.2.0.RELEASE

Spring Boot依赖管理: Spring Boot使用了一种特殊的方式来处理依赖——“起步依赖”。这些起步依赖是预先配置好的依赖集合,可以简化构建配置。



    org.springframework.boot
    spring-boot-starter-web

spring-boot-starter-web包含了开发web应用所需的所有依赖,如Spring MVC、Tomcat等。

4、 嵌入式容器支持
Spring容器: 在传统的Spring框架中,你通常需要部署你的应用到一个外部的Servlet容器中,如Tomcat或Jetty。

Spring Boot容器: Spring Boot支持嵌入式容器,如Tomcat、Jetty或Undertow,无需部署外部容器即可运行。

// Spring Boot嵌入式容器示例
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args); // 自动启动嵌入式Tomcat
    }
}

5、 自动配置
Spring自动配置: Spring并没有提供太多自动配置,大多数情况下你需要手动配置你的beans和依赖。

Spring Boot自动配置: Spring Boot提供了大量的自动配置,这些配置基于你项目中的jar依赖。

// Spring Boot自动配置示例
@SpringBootApplication
public class MyApplication {
    // 应用启动时,Spring Boot会自动配置大部分所需的组件
}

结论:
Spring Boot并不是要替代Spring,而是在Spring的基础上提供了更快速、更简洁的开发体验。它通过简化配置、提供自动配置和嵌入式容器支持,使得创建和部署Spring应用变得更加容易。如果你是在寻找快速开发和简化部署的方案,那么Spring Boot是一个非常好的选择。而对于需要更细粒度控制和定制化的项目,传统的Spring框架仍然是一个强大的工具。

最后说一句(求关注,求赞,别白嫖)

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。

这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文已收录于我的技术网站,next-java.com, 有大厂完整面经,工作技术等经验分享

求一键三连:点赞、分享、收藏

点赞对我真的非常重要!在线求赞,加个关注非常感激

你可能感兴趣的:(SpringBoot,spring,Java,spring,spring,boot)