springboot系列学习(十五):Spring Boot框架是如何整合Spring MVC的,第一个基于Spring Boot的Spring MVC项目

2022-05-09 09:50:45 浏览数 (1)

目录

  • 回顾
  • 以前我们创建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已经给你做完了。直接启动之后,浏览器输入接口地址就可以了

0 人点赞