理解Spring ,Spring MVC和Spring Boot

前言
从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却有点繁琐,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为即使是开发一个Hello-World的Web应用,都需要我们在pom文件中导入各种依赖,编写web.xml、spring.xml、springmvc.xml配置文件等。

所以为了简化Spring繁杂的配置,Spring Boot应运而生。正如Spring Boot的名称一样,一键启动,Spring Boot提供了自动配置功能,为我们提供了开箱即用的功能,使我们将重心放在业务逻辑的开发上。

Spring FrameWork

Spring框架的最重要特性是依赖注入,所有的Spring模块的核心都是依赖注入(DI)控制反转(IOC)。为什么很重要呢,因为当我们使用DI或IOC时,我们可以使应用得到解耦。我们来看一个简单的例子:

没有依赖注入的例子:我们需要注入大量对象。
在这里插入图片描述
使用依赖注入的例子:
在这里插入图片描述
依赖注入看我们代码看起来非常简单:@component: 我们告诉spring,说这个bean对象你管理;@Autowired:我们告诉spring根据类型给我自动装配

Spring 还能解决
1. 重复代码
Spring框架它在依赖注入(DI)的核心概念上开发了许多Spring模块:
Spring JDBC、Spring MVC、Spring AOP、Spring ORM、Spring Test

  • 减少样板代码/减少重复

  • 促进解耦/增加单元可测性 例如:与传统的JDBC相比,我们使用Spring JDBC需要编写的代码减少了许多。

2. 与其他框架良好的集成
Spring框架并不尝试去解决已经解决了的问题,它所做的一切就是提供与提供出色解决方案的框架的完美集成。

Spring MVC

Spring MVC框架解决的核心问题是什么: Spring MVC框架提供了开发Web应用的分离方式。通过DispatcherServlet、ModelAndView、View Resolver等简单概念,是Web应用开发变得更加简单。

基于Spring的应用程序有很多配置。当我们使用Spring MVC时,我们需要配置组件扫描,调度器servlet,视图解析器等:
在这里插入图片描述

Spring Boot

  • Spring Boot 自动配置
    Spring引入了新的思维过程:我们可以变得更加智能些吗?当一个spring mvc jar包被添加到应用程序时,我们是否可以自动配置一些bean?
    当Hibernate jar包在类路径时,自动配置数据源怎样?
    当Spring MVC jar包在类路径时,自动配置Dispatcher Servlet怎样?
    Spring Boot查看ClASSPATH上对于本应用程序需要编写配置的框架,基于这些,Spring Boot提供了这些框架的基本配置-这就是自动配置。
  • Spring Boot Starter Projects
    假设我们想开发一个Web应用程序。首先,我们需要确定我们想要使用的框架,使用哪个版本的框架以及如何将它们连接在一起。所有Web应用程序都有类似的需求 下面列出的是我们在Spring MVC中使用的一些依赖关系。这些包括Spring MVC,Jackson Databind(用于数据绑定),Hibernate-Validator(用于使用Java验证API的服务器端验证)和Log4j(用于日志记录)。
    什么是Starter
    在这里插入图片描述
    我们来看Starter的一个示例 - Spring-Boot-Starter-Web
    在这里插入图片描述
    以下屏幕截图显示了添加到我们的应用程序中的不同依赖关系:
    在这里插入图片描述
    任何典型的Web应用程序都会使用所有这些依赖项.Spring Boot Starter Web预先打包了这些。作为开发人员,我们不需要担心这些依赖关系或兼容版本。
  • Spring Boot Starter项目选项
    正如Spring Boot Starter Web一样,Starter项目帮助我们快速入门开发特定类型的应用程序:
  • spring-boot-starter-web-services - SOAP Web服务
  • spring-boot-starter-web - Web和RESTful应用程序
  • spring-boot-starter-test - 单元测试和集成测试
  • spring-boot-starter-data-jpa - 带有Hibernate的Spring Data JPA
  • spring-boot-starter-cache - 启用Spring Framework的缓存支持

Spring Boot 自动配置
当我们启动Spring Boot应用程序时,我们可以在日志中看到一些重要的消息。
在这里插入图片描述
上面的日志语句显示了Spring Boot Auto Configuration的行为。

一当我们在应用中添加了Spring Boot Starter Web依赖,Spring Boot AutoConfiguration就会发现Spring MVC在类路径下,它会自动配置dispatcherServlet,一个默认的错误页面和webjars。
如果你添加了Spring Boot DataJPA Starter依赖,Spring Boot AutoConfiguration会自动配置数据源(datasource)和实体管理器(Entity Manager)

Spring Boot Auto Configuration在哪里实现
所有的自动配置逻辑都在spring-boot-autoconfigure.jar中实现。mvc、data和其他框架的所有自动配置逻辑都存在与一个jar包中。
spring-boot-autoconfigure.jar中重要的文件是/META-INF/spring.factories,该文件;列出了在EnableAutoConfiguration key下启动的所有自动配置类。下面列出一些重要的配置类:
查看自动配置:
在application.properties打开调试日志:
在这里插入图片描述
总结
Spring Boot的出现本身就是为了减低Web开发的门槛,使开发人员能够专注于业务开发,而不需浪费时间在业务开发之外,至此Spring MVC到Spring Boot的简化之路到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值