springboot和spring的区别

29 阅读1分钟

Spring是一个全面的企业级开发框架,提供了IoC,AOP,事务管理,MVC等功能,但配置繁琐,需要大量的XML或Java配置类。

SpringBoot是基于Spring的快速开发工具,旨在简化 Spring 应用的搭建和配置,通过约定优于配置(Convention Over Configuration) 的原则,减少开发者的工作。

优势:

  • 配置方式

    • Spring早期是基于大量的XML文件定义Bean的依赖关系。虽然后面通过@Configuration和@Bean注解替代了XML,但仍需要手动配置多个组件。
    • SpringBoot提供了自动装配,通过@EnableAutoConfiguration自动根据classpath中的依赖和项目结构推断并配置Bean。此外,使用 application.propertiesapplication.yml 进行少量必要配置,如数据库连接信息。
  • 起步依赖

    • Spring需要手动管理Maven依赖,容易出现版本冲突问题。
    • SpringBoot通过定义Starters简化依赖管理,一个Starter包含了一组相关依赖(如Spring-boot-starter-web包含了SpringMVC,Tomcat等)

所以,SpringBoot更加轻量级的原因可总结如下:

  • 减少样板代码:无需编写大量配置类和 XML,专注业务逻辑。
  • 依赖优化:Starters 自动管理依赖版本,避免版本冲突。
  • 嵌入式服务器:无需部署 WAR 包,直接运行 JAR,减少外部依赖。
  • 按需加载:自动配置仅加载必要组件,避免加载无用 Bean。