浅析Spring MVC和Spring BOOT之间的简化小秘密

从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为即使是开发一个Hello-World的Web应用,都需要我们在pom文件中导入各种依赖,编写web.xml、spring.xml、springmvc.xml配置文件等。特别是需要导入大量的jar包依赖时,我们需要在网上查找各种jar包资源,各个jar间可能存在着各种依赖关系,这时候又得下载其依赖的jar包,有时候jar包间还存在着严格的版本要求,所以当我们只是想开发一个Hello-World的超简单的Web应用时,却把极大部分的时间在花在了编写配置文件和导入jar包依赖上,极大地影响了我们的开发效率。所以为了简化Spring繁杂的配置,Spring Boot应运而生。正如Spring Boot的名称一样,一键启动,Spring Boot提供了自动配置功能,为我们提供了开箱即用的功能,使我们将重心放在业务逻辑的开发上。

那么Spring Boot又是怎么简化Spring MVC的呢?Spring Boot和Spring、Spring MVC间又是怎样的关系呢?Spring Boot又有什么新特点呢?

接下来,让我们走进Spring MVC 到Spring Boot的简化之路,或许你就能找到这些答案。

Spring 能解决什么问题?

  1. 重复代码

Spring框架停止了依赖注入(DI)吗?没有,它在依赖注入(DI)的核心概念上开发了许多Spring模块:

Spring JDBC

Spring MVC

Spring AOP

Spring ORM

Spring Test

考虑一下Spring JDBC,这些模块带来了新功能吗?并没有,我们完全可以使用Java代码完成这些工作。那么,它们给我们带来了什么?它们带来了简单的抽象,这些简单抽象的目的是:

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

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

  1. 与其他框架良好的集成

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

Hibernate

IBatis

JUnit

Spring MVC框架解决的核心问题是什么

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

为什么需要Spring Boot?

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

浅析Spring MVC和Spring BOOT之间的简化小秘密
Spring Boot解决的问题?

  1. Spring Boot 自动配置

Spring引入了新的思维过程:我们可以变得更加智能些吗?当一个spring mvc jar包被添加到应用程序时,我们是否可以自动配置一些bean?

当Hibernate jar包在类路径时,自动配置数据源怎样?

当Spring MVC jar包在类路径时,自动配置Dispatcher Servlet怎样?

Spring Boot查看ClASSPATH上对于本应用程序需要编写配置的框架,基于这些,Spring Boot提供了这些框架的基本配置-这就是自动配置。

  1. Spring Boot Starter Projects

假设我们想开发一个Web应用程序。首先,我们需要确定我们想要使用的框架,使用哪个版本的框架以及如何将它们连接在一起。所有Web应用程序都有类似的需求 下面列出的是我们在Spring MVC中使用的一些依赖关系。这些包括Spring MVC,Jackson Databind(用于数据绑定),Hibernate-Validator(用于使用Java验证API的服务器端验证)和Log4j(用于日志记录)。

  1. 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的出现本身就是为了减低Web开发的门槛,使开发人员能够专注于业务开发,而不需浪费时间在业务开发之外,至此Spring MVC到Spring Boot的简化之路到此结束。

猜你喜欢

转载自blog.51cto.com/13954634/2309054