一:Spring Boot 、 Spring MVC 、Spring对比
首先你需要明白一件事情:Spring Boot项目目的并不是替换Spring、SpringMVC,而是使他们用起来更加简单。
Spring 框架
Spring框架最核心的特性就是依赖注入DI(Dependency Injecttion)和控制反转IOC(Inversion Of Control)。如果你能够合理的使用DI和IOC,可以开发出松耦合、扩展性好的的应用程序。
Spring MVC
Spring MVC提供了一种友好的方式来开发Web应用程序。 通过使用诸如Dispatcher Servlet,ModelAndView和View Resolver,可以轻松开发Web应用程序。
Spring Boot
Spring 和 Spring MVC最大的弊病在于存在大量的配置,并且这些配置在不同的项目中具有很高的相似性。从而导致重复配置,繁琐而且杂乱!
Spring Boot期望通过结合自动配置和starters来解决了这个问题。 另外,Spring Boot还提供了一些功能,可以更快地构建可用于生产环境的应用程序。
二、Spring Boot 自动配置
Spring和Spring MVC应用程序里面有大量的XML或Java Bean配置。Spring Boot为解决这个问题,提供一种新的解决方案,新的思维方式。
springboot思考的方式:是不是可以更加智能一点,当Spring中加入一些新的jar包,可以自动的配置一些bean。 比如:Spring MVC JAR位于类路径中时,自动配置Dispatcher Servlet。
三、什么是Spring Boot Starter?
Spring Boot Starter是一组被依赖第三方类库的集合。
如果你要开发一个web应用程序,就通过包管理工具(如maven)引入spring-boot-starter-web就可以了,而不用分别引入下面这么多依赖类库,spring-boot-starter-web一次性帮你引入下面的这些常用类库。
Spring — spring 核心, beans, context上下文, AOP面向切面
Web MVC — Spring MVC
Jackson — JSON数据的序列化与反序列化
Validation — Hibernate参数校验及校验API
嵌入式 Servlet Container — Tomcat
日志框架Logging — logback, slf4j
四、什么是Spring Boot Starter Parent
所有的Spring Boot项目默认使用spring-boot-starter-parent作为应用程序的父项目。
继承父项目的好处在于: 统一java版本配置和其他的一些依赖类库的版本。也就是说,你引入的第三方类库不要加版本号,父项目替你管理版本,而且是经过兼容性测试的。比你自己随便引入一个版本兼容性更好。
当然父项目只能帮你管理一些常用类库的版本,如果你引入一些不常用的jar,还是要自己管理版本号及兼容性!
五、快速创建启动项目
相信很多使用过Spring框架的架构师,在项目启动初期,为了搭建一个兼容性良好、使用方便的架构需要花费很多的精力。现在,你可以使用一个UI界面来帮助你创建基本的启动项目!方便快捷!
六、嵌入式web容器
Spring boot打成jar包,默认包含嵌入式的web容器:tomcat。你可以简单的使用如下命令启动一个web服务:
java -jar springboot-demo.jar
这更有利于微服务的部署及微服务的构建、启动、扩容。Spring Boot还支持Jetty和Undertow作为web容器。
七、Spring Data
Spring Data的目标是提供一种更友好的方式或者是API来存取数据。包括对于关系型数据库和NOSQL数据的支持。比如:
Spring Data JPA — 关系型数据库操作的API,友好且易于使用
Spring Data MongoDB -MongoDB的操作API
Spring Data REST — 从持久层Repositories自动生成服务层API,暴露 REST APIs 接口。超级好用!
当然,Spring Data还有更多好用的特性和支持等待你去探索!
写在最后
通过搜-suo-查询“字母哥博客”,更多精品知识等待你!
本号只做持续的知识输出,希望您能关注、评论、转发!您的支持是我不竭的创作动力!让知识产生价值、让程序员改变世界!
领取专属 10元无门槛券
私享最新 技术干货