1.springboot简介

一、回顾

以前我们在一个新项目开发之前,首先会先进行技术选型:

1、spring是最毫无悬念的选择;

2、但面对DB层面的框架,就有很多选择,例如hibernate、mybatis或者有的直接用传统的JDBC而不是ORM框架;

3、再如web层面的选择,从一开始流行的struts、struts2再到springmvc异军突起慢慢占领市场;

总的来说,都离不开三大框架;所谓的三大框架,其实就是将各个框架的功能整合在一起,使得开发人员能快速开发,提高开发效率,这里就提到一个关键词:整合。

相信有过整合经验的都踩过坑,就拿spring、springmvc得整合例子来说,一般都会有两个spring的配置文件,一个是是用来配置springmvc的,例如视图解析器等;一个是用来配置spring的,例如事务管理器等;两个配置文件都会根据自身配置扫描包的路径去把添加了@Controller、@Service注解的组件添加到IOC容器中,那么这可能就有问题,假如项目结构包是com.xxx,并且两个配置文件扫描的包路径都是com.xxx,可能就会出现请求无法映射到controller以及页面无法跳转问题,根源在于:spring 是父容器, springmvc是子容器, 父容器在项目启动的时候会先加载,所以父容器会把扫描到的组件都会存放到spring的容器,而不会放到springmvc子容器中,当访问项目的时候,springmvc找不到处理器映射器,和其对应的Controller,进而报404错误!所以一般我们都会在springmvc配置文件中配置,只扫描带有@Controller注解的组件而spring配置文件则会扫描排除带有@Controller的组件来解决;然后这只是整合过程中的一个小问题;更繁琐的在于整合过程中,我们需要每整合一点功能就进行测试下,防止全部整合完启动web容器时报了一堆的异常而且又无从解决。

 

二、springboot主角登场

1、什么是springboot

springboot不是什么新的技术,其设计的目的是用来简化spring应用的初始搭建和开发过程,它使用了特定的方式来进行配置,从而使我们不再需要定义样板化的配置。

2、springboot的优点

嵌入式的web容器,只要启动springboot的主启动程序就能启动web容器,默认使用的使Apache的Tomcat;

可以创建独立的spring应用程序,并且还能根据选择勾选的功能模块,快速和主流框架集成;

提供各种各样的starters,比如我们需要使用reids,那么引入redis的starters即可,里面的jar包引入和jar包版本都会帮我们控制好;

大量的自动配置,所谓的约定大于配置,简化开发,而且我们也可修改默认值;

不再需要配置web.xml文件,比如加载spring和springmvc的配置,配置servlert、listener等;

等等等等......

3、springboot的缺点

任何技术都两面性,在spring整合配置复杂的情况下,我们可以比较清楚的了解各个框架整合的功能;

而springboot大量的自动配置虽然简化了初始搭建,但它是对spring框架的再封装,如果对spring框架不是很了解,要进一步理解springboot的封装、自动化配置等也不是那么容易,总结就是入门容易,精通会比较困难。

原文地址:https://www.cnblogs.com/Json1208/p/9734813.html