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配置示例
<beans>
    <bean id="myBean" class="com.example.MyBean"/>
</beans>

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中,你需要手动声明项目中使用的所有依赖。

<!-- Spring依赖示例 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.2.0.RELEASE</version>
</dependency>

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

<!-- Spring Boot起步依赖示例 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

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, 有大厂完整面经,工作技术等经验分享

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

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

相关推荐

  1. springspringboot区别

    2024-01-24 20:02:02       42 阅读
  2. SpringSpringBoot区别

    2024-01-24 20:02:02       35 阅读
  3. springspringboot区别

    2024-01-24 20:02:02       31 阅读
  4. springspringboot区别

    2024-01-24 20:02:02       15 阅读
  5. SpringSpringBoot区别

    2024-01-24 20:02:02       22 阅读
  6. springbootspring区别

    2024-01-24 20:02:02       17 阅读
  7. SpringSpringBoot区别

    2024-01-24 20:02:02       14 阅读
  8. spring springBoot区别

    2024-01-24 20:02:02       11 阅读
  9. springspringboot区别,简单直接

    2024-01-24 20:02:02       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 20:02:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 20:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 20:02:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 20:02:02       20 阅读

热门阅读

  1. 142. 环形链表 II(Python3)

    2024-01-24 20:02:02       39 阅读
  2. openssl3.2/test/certs - 025 - client intermediate ca: cca-cert

    2024-01-24 20:02:02       33 阅读
  3. 一次查找某些后缀的文件

    2024-01-24 20:02:02       29 阅读
  4. GDB调试crashdump

    2024-01-24 20:02:02       43 阅读
  5. 1.20号网络

    2024-01-24 20:02:02       32 阅读
  6. 民安智库-医院职工满意度调查报告如何撰写

    2024-01-24 20:02:02       28 阅读
  7. MongoDB基本常用命令(一)

    2024-01-24 20:02:02       34 阅读
  8. Scikit-Learn 中级教程——学习曲线

    2024-01-24 20:02:02       37 阅读
  9. Scikit-Learn 中级教程——特征缩放

    2024-01-24 20:02:02       30 阅读
  10. 【MySQL】Char与VarChar详解

    2024-01-24 20:02:02       38 阅读