Spring和Spring Boot的简介及差异

7 篇文章 0 订阅
4 篇文章 0 订阅

Spring Framework(Spring框架)

Spring 是一个开源的企业级Java应用程序框架,由Rod Johnson在2002年创立。它的核心特性包括:

  • 依赖注入 (Dependency Injection, DI):通过容器管理对象间的依赖关系,降低代码耦合度,提高可测试性和重用性。
  • 面向切面编程 (Aspect-Oriented Programming, AOP):允许开发者定义横切关注点,如事务管理、日志记录、权限检查等,无需侵入业务逻辑代码。
  • 模块化设计:包含众多模块,如Spring Core(基础模块)、Spring Context(提供IoC容器)、Spring AOP、Spring JDBC、Spring MVC(用于构建Web应用)、Spring Data(简化数据访问)、Spring Security(安全框架)等。

Spring Boot

Spring Boot 是Spring家族的一员,旨在简化新Spring应用的初始搭建以及开发过程,首版发布于2014年。其核心理念是“约定优于配置”,显著特点包括:

  • 自动配置 (Auto-configuration):根据应用中存在哪些类或者bean,Spring Boot会自动配置相关依赖,减少手动配置的工作量。
  • 起步依赖 (Starter Dependencies):提供了一系列预定义的依赖集合,只需声明少量的“starter”就能包含所有需要的库,避免版本冲突问题。
  • 嵌入式服务:内嵌了如Tomcat、Jetty等Web服务器,使得Spring Boot应用可以被打包成一个独立可执行的jar文件,直接运行,无需外部部署容器。
  • 简化开发流程:提供了统一的健康检查、监控、日志配置等功能,使开发者能快速开始业务逻辑开发,而不必关心底层设施的搭建。
相同点:
  • 基于Spring框架:Spring Boot建立在Spring的基础之上,继承了Spring的所有优点和功能模块。
  • 组件模型:两者都采用基于注解的编程模式,如@Component@Service@Repository@Controller等,以及依赖注入的概念。
不同点:
  • 配置方式

    • Spring 原生需要大量XML配置或Java配置类来定义Bean及依赖关系。
    • Spring Boot强调无XML配置,大量使用默认配置,必要时可通过@ConfigurationPropertiesapplication.propertiesapplication.yml等方式进行细粒度定制。
  • 启动方式

    • Spring 应用一般需要配合Servlet容器(如Tomcat)部署。
    • Spring Boot应用可以直接通过main方法启动,内嵌的Servlet容器使其成为独立可执行的程序。
  • 开发效率

    • 使用Spring进行开发时,可能需要较多时间去处理各种配置、集成第三方库等问题。
    • Spring Boot通过自动化配置和 starters极大地提高了开发效率,降低了项目的初始化成本。

举例说明:

  • 在传统的Spring MVC项目中,开发者需要手动配置DispatcherServlet、HandlerMapping、ViewResolver等一系列组件,并且可能需要单独配置数据库连接、日志框架等。
  • 而在Spring Boot项目中,开发者只需要在pom.xml中加入spring-boot-starter-web依赖,Spring Boot会自动配置好Web环境所需的全部组件;同样,添加spring-boot-starter-data-jpa依赖,就可以自动配置JPA和连接池,开发者只需通过简单的注解即可操作数据库。

Spring Boot对于小型到中型项目尤为友好,简化了开发和部署流程,但并不排斥Spring框架本身的强大功能和灵活性,大型项目也可以结合使用,利用Spring Boot的便利性快速搭建基础设施,并结合Spring的强大模块进行深度定制和扩展。

  • 34
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值