目录
- 回顾
- 以前我们创建ssm框架项目,创建的步骤是:
- 第一个基于Spring Boot的Spring MVC项目
- 创建一个jar类型的maven项目
- 配置springboot的启动器
- @SpringBootApplication作用
- 总结这个流程
- 和ssm项目做对比
- 为什么没有把项目放到tomcat里面就可以启动
回顾
我们已经知道springboot框架已经整合了springmvc,但是我们如何使用呢?
之前ssm项目里面,我们使用springmvc的流程是:
代码语言:javascript复制自己写一个springmvc的配置文件,在web.xml里面引入,在web.xml里面配置dispacservlet前端控制器。
springmvc.xml里面是配置:
然后在controller层使用注解
以前我们创建ssm框架项目,创建的步骤是:
1 因为是springmvc的项目,所以是web项目,我们要使用maven,所以先创建一个maven的web项目。
以上就是生成的maven的web项目,是war类型的项目
第一个基于Spring Boot的Spring MVC项目
创建一个jar类型的maven项目
1 创建maven的jar类型的项目
创建的maven项目的目录如上。
2 因为我们要使用springboot框架,所以加入springboot的启动器依赖,这个依赖里面已经集成了很多的框架,比如springmvc,mybatis等。springboot的启动器依赖就是一个父类,里面有很多的东西,我们的项目就先继承人家的依赖
代码语言:javascript复制<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.10.RELEASE</version>
</parent>
既然说这个是springboot的依赖,是父类,那么他里面集成了很多的东西,我们看看是不是这个依赖里面有很多的东西,点击去看源码
spring-boot-starter-parent 这个jar包里面,里面的主要代码,我们需要了解的是
这个父类里面的是这个 ${basedir} 就是表示当前的项目。这个父类就会解析当前这个项目路径下的这些资源,包括3个配置资源。所以,我们要写的时候要写这些,一般我们直接写yml文件。然后在这个文件里面写我们的参数,这个springboot就会根据这个父类里面的这个代码将我们的yml文件进行引入。 以上就是这个父类里面我们需要了解的。
这个父类是又继承了,我们需要了解当前项目的爷爷里面的代码是什么意思
里面的我们需要了解的主要是 这个里面就是springboot集成的全部的项目需要用到的jar包,并且这些jar包之间互相使用是没有错误的。我们用其中的某一些jar包的时候,只需要写出使用的就可以,不需要写版本。
确实这个springboot的依赖里面有很多的集成 的其他的依赖。
代码语言:javascript复制3 我们只是继承了springboot的依赖,他里面有太多的东西了,我们要哪个,直接拿哪个,写对应的依赖。
相当于我们一个类a继承另一个类b,b里面有很多的方法,我们的类a可以重写其中某一个方法,想用哪个,使用哪个。
**为什么要继承这个springboot依赖,主要就是版本号的统一**。我们不用管版本号,只要拿出来就可以使用了。
代码语言:javascript复制4 我们要开发web项目,之前是创建maven的web项目,
现在直接创建maven项目。也没有web.xml文件。但是
我们即使没有web.xml,就是要开发web项目。所以我们可以导入web依赖
以上配置了这个,也就是继承了springboot。我们想要用其中的jar包,直接配置依赖,不需要写版本号,就可以使用了。现在我们开发的是MVC项目,springboot官方给我们提供一个依赖,只要配置了这个,那么MVC需要的jar包就会进行导入,也可以将springboot的启动器也导入了,现在是springboot项目,必须有启动器。 以下的配置就是将spring的MVC需要的 jar包引入,还有就是引入了springboot的启动器。
代码语言:javascript复制 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
之前只是导入父依赖,现在是使用父依赖里面的东西,写了以上的东西,那么就相当于写了springboot的启动器,当前的项目就是web项目了。只是单单的写这个,也把springmvc框架的所有东西也导入了
写了以上的代码,那么这个项目就会将tomcat,spring ,springmvc都进行导入,就可以搭建一个简单的ssm项目了 ssm项目:Spring SpringMVC MyBatis
所以如果要连接数据库,那么还需要导入mybatis的依赖,jdbc的依赖
配置springboot的启动器
我们在pom文件里面只是把依赖引入,但是要在项目里面使用,还需要加一个整个项目的启动类
新建启动类 必须在包中新建这个类,不能直接放入到java文件夹。在com下新建自定义名称的类(规范:XXXXApplication)
代码语言:javascript复制//启动类
//可以自动扫描当前类所在包及子包的注解
//注意:此类要放入到包中
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class,args);
}
}
以上类就是一个springboot项目的启动器,我们运行这个启动器,这个springboot项目就运行了。
这个启动器运行的时候干了什么事情,
代码语言:javascript复制给我们创建了spring容器,帮助我们扫描包路径,根据路径扫描注解,根据注解把对象放到spring容器里面
之前我们需要在springmvc.xml里面配置扫描的路径,开启注解扫描。现在springboot集成springmvc。我们不需要写springmvc.xml。所以我们扫描的配置要写在哪里呢?
这个启动类上面的@SpringBootApplication就起到作用了
@SpringBootApplication作用
//可以自动扫描当前类所在包及子包的注解,把扫描到的注解变为bean对象,放到spring容器里面
总结这个流程
我们写了启动类,启动类上面有这个注解,只要一运行这个启动类,就会加载bean资源,放到spring容器里面,到哪里找这些bean资源呢?根据@SpringBootApplication这个注解扫描当前类所在包及子包的注解,只要扫描到注解,就把他们变为bean资源,放到spring容器里面。
和ssm项目做对比
以前web.xml里面配置dispctservlet前端控制器,配置springmvc.xml路劲,在springmvc.xml里面写资源扫描路径,开启注解扫描,写静态资源放行。
现在 我们使用了springboot项目,只要写了启动类,那么dispctservlet前端控制器,资源扫描路径,开启注解扫描,这些配置就不需要了,springboot项目已经集成了。我们只要在controller层也对应的接口方法就可以了。
为什么没有把项目放到tomcat里面就可以启动
因为springboot项目自带tomcat。只要写了springboot的启动器,那么就自动将tomcat的依赖导入了。
只要启动了这个启动类,那么资源的加载,并且打包项目放到tomcat里面,这个流程springboot已经给你做完了。直接启动之后,浏览器输入接口地址就可以了