目录
- 回顾
- 从ssm框架转springboot框架的思路
- 具体理解
- Spring Boot是什么
- 什么是Spring Boot的启动器
- 学习Spring Boot在学习什么?
- 快速创建一个springboot项目
- 我们创建一个maven项目,看看和springboot项目的目录结构有什么区别?
- 以下是创建的maven项目
回顾
我们已经学习了spring springmvc mybatis,并且可以搭建ssm框架的项目
看具体系列:
Spring框架(一) 为什么要学spring框架,这个框架里面有什么,我们需要学什么
深度学习springMVC(一)为什么要学习springMVC,实现基本使用流程(看不懂你打我)
我们的ssm项目,需要applicationcontext.xml配置文件,db.protery文件,日志文件,springmvc.xml文件。
从ssm框架转springboot框架的思路
之前我们自己导入jar包。后来有了maven,人家maven给我们导入jar包。
ssm框架的项目,需要我们写4个配置文件。这些配置文件里面只是扫描的路径变一下,数据库的配置变一下,其他的很多的东西都没有变。但是每次我们都要写,很麻烦的。
所以现在就有了springboot框架,人家把这些配置文件给你封装好了,我们只要使用了这个springboot框架,很快就可以创建一个项目。
具体理解
我们ssm的配置文件里面 的具体数据还是我们自己的,比如数据库的用户名和密码,所以springboot框架只是给你封装了配置文件的格式,具体的数据还得自己写。所以现在springboot就有了自己的一个配置文件,我们把那些数据写到这个springboot的配置文件里面就可以了。
我们只需要在springboot的配置文件里面写具体的数据,启动项目,这些数据被加载,其实还是和ssm项目一样,需要走那些配置。
Spring Boot是什么
就是一个框架。编写项目时不需要编写xml文件。
各种主流技术已经都提供了Spring Boot的启动器。
什么是Spring Boot的启动器
Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。
打个比方:
代码语言:javascript复制我们使用了springboot框架,之前的applicationcontext.xml,springmvc.xml,
web.xml等配置文件都不需要写了。以前的这些配置文件里面,底层都是配置bean标签。
ssm项目运行流程 :
我们的项目在tomcat里面启动,会首先运行dispctservlet,
这个会初始化spring容器,这个容器在创建的时候,会加载配置文件。
根据配置文件里面的东西,把所有的东西都初始化,都放到spring容器里面,
以后在spring容器里面获取资源,实现流程就可以了
现在的springboot框架把所有的东西都封装了,那么spring容器如何拿,资源如何放到我们的spring容器里面,资源如何的加载。
代码语言:javascript复制所以,springboot的启动器,就相当于一个资源加载的入口。只要一启动,
相当于spring容器的创建了,bean对象的创建了,路径的扫描了,都给你做了。
也就是这个启动器就相当于告诉springboot项目,你虽然给我封装好了,但是只有当我启动这个东西的时候,
我的项目里面才会使用,不然即使你已经给我封装了,但是我的项目不需要这个,不没有启动,你也不需要加载。
学习Spring Boot在学习什么?
SpringBoot本质是Spring Framework,Spring Framework主要作用就是整合其他技术。所以学习Spring Boot就是在学习如何整合其他技术。
也就是springboot里面,ssm框架里面的东西都有,只是人家给你又进一步的封装了一些,变得简单了,比如很多的配置文件不需要我们写了
快速创建一个springboot项目
创建完成之后的springboot的项目的目录是
我们创建一个maven项目,看看和springboot项目的目录结构有什么区别?
以下是创建的maven项目
我们创建的maven项目,里面只是一个简单的目录结构,对于springboot项目,比我们创建的maven的项目多了一个启动类,还有就是springboot的依赖
springboot的依赖
代码语言:javascript复制<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>