SpringBoot 01 概述

官方文档

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

简介

  • SpringBoot 是一个 JavaWeb 的开发框架,和 SpringMVC 类似,对比其他JavaWeb框架的好处,总体来说是简化开发,能迅速的开发 web 应用。

  • SpringBoot 基于 Spring 开发,其本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。

  • SpringBoot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。

  • SpringBoot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 SpringBoot 应用只需要很少的 Spring 配置。

  • SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,SpringBoot 整合了所有的框架 。

主要优点

  • 为所有 Spring 开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化 Web 项目
  • 没有冗余代码生成和 XML 配置的要求

创建基础项目

Spring 官方提供了非常方便的工具让我们快速构建应用

Spring Initializr:https://start.spring.io/

方式一:使用 Spring Initializr 的 Web 页面创建项目

  1. 打开 https://start.spring.io/

  2. 填写项目信息

  3. 点击”Generate Project“按钮生成项目;

  4. 下载此项目

  5. 解压项目包,并用 IDEA 以 Maven 项目导入,一路下一步即可,直到项目导入完毕。

  6. 如果是第一次使用,可能速度会比较慢,包比较多,需要耐心等待一切就绪。

项目创建方式二:使用 IDEA 直接创建项目

  1. 创建一个新项目

  2. 选择 spring initalizr,可以看到默认就是去官网的快速构建工具那里实现

  3. 填写项目信息

  4. 选择初始化的组件(初学勾选 Web 即可)

  5. 填写项目路径

  6. 等待项目构建成功

项目结构分析

通过上面步骤完成了基础项目的创建。就会自动生成以下文件。

  • 程序的主启动类

  • 一个 application.properties 配置文件

  • 一个 测试类

  • 一个 pom.xml

pom.xml

<!-- 父依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <!-- web场景启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- springboot单元测试 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <!-- 剔除依赖 -->
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

父依赖parent

点进<parent></parent>可以看到配置了大量常用jar包的版本,这些版本跟随SpringBoot版本而变动。

这里才是真正管理SpringBoot应用里面所有依赖版本的地方,SpringBoot的版本控制中心。

这里给我们默认指定了各依赖兼容性最好的版本,以后我们导入依赖默认是不需要写版本的。

但是如果导入的包没有在依赖中管理着就需要手动配置版本了。

启动器spring-boot-starter

springboot-boot-starter-xxx:就是spring-boot的场景启动器。

比如spring-boot-starter-web,就是帮我们导入了web模块正常运行所依赖的组件。

SpringBoot将所有的功能场景都抽取出来,做成一个个的starter (启动器)。

只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来。

我们要用什么功能就导入什么样的场景启动器即可。

starter也可以自定义。

编写一个http接口

  1. 在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到

image-20210728092246825

  1. 在包中新建一个HelloController类

image-20210728092339376

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "Hello World";
    }

}
  1. 从主程序SpringbootApplication启动项目,控制台输出了 Tomcat 访问的端口号

image-20210728092558931

  1. 浏览器访问http://localhost:8080/hello,页面输出结果

image-20210728092847445

项目打包

将项目打成jar包,点击 maven 的 package

image-20210728093138186

如果出现错误,可以尝试配置打包时跳过项目运行测试用例

<!--
    在工作中,很多情况下我们打包是不想执行测试用例的
    可能是测试用例不完事,或是测试用例会影响数据库数据
    跳过测试用例执
    -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳过项目运行测试用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>

如果成功,则控制台会打印如下内容

image-20210728093421170

这时会在target目录下生成一个 jar 包

image-20210728093526118

使用java -jar命令运行jar包,即可启动服务

image-20210728094550554

服务启动后,浏览器访问http://localhost:8080/hello,页面依然输出同样的结果

配置banner

可以看到,SpringBoot默认的启动图案为

image-20210728095854852

这个图案是可以更改的

  1. 到项目下的 resources 目录下新建一个banner.txt。

  2. 到https://www.bootschool.net/ascii 这个网站生成图案,拷贝到banner.txt

  3. 再次启动项目,可以看到启动时的图案变为自己设置的图案

image-20210728095804073

posted @ 2021-07-29 14:41  天航星  阅读(64)  评论(0编辑  收藏  举报