SpringBoot入门实现第一个SpringBoot项目

Spring Boot 简介

Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC + Spring + MyBatis 框架进行开发的过程。

在以往我们采用 SpringMVC + Spring + MyBatis 框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置 web.xml,配置 Spring,配置 MyBatis,并将它们整合在一起等,而 Spring Boot 框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化我们的开发过程。

Spring Boot 入门

创建一个 Module,选择类型为 Spring Initializr 快速构建

924BE993-37D9-B08F-A536-74E9C3F633E2.png

设置 GAV 坐标及 pom 配置信息

291C59E3-4D5A-E0F0-3C27-D7C610D2F82A.png

选择 Spring Boot 版本及依赖

会根据选择的依赖自动添加起步依赖并进行自动配置

B5E508C5-215F-274E-B0AF-D1D17EBF5204.png

设置项目名称、项目路径

5DE6ECCC-8E33-7374-E268-69D83E41D8C6.png

提示:点击 Finish,如果是第一次创建,在右下角会提示正在下载相关的依赖

341C103C-7282-7123-3928-2E7B3FC0CF50.png

Show all

3532AC48-CFD0-D2FD-08EA-CC1E2427FD1B.png

项目创建完毕,如下

B108E3BC-3414-0A74-0CE7-06261BD44795.png

项目结构

FF494A72-4624-A612-4D82-8B9CC7F7AF9B.png

  • static:存放静态资源,如图片、CSS、JavaScript 等
  • templates:存放 Web 页面的模板文件
  • application.properties/application.yml 用于存放程序的各种依赖模块的配置信息,比如 服务端口,数据库连接配置等

对 POM.xml 文件进行解释

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--继承 SpringBoot 框架的一个父项目,所有自己开发的 Spring Boot 都必须的继承-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--当前项目的 GAV 坐标-->
    <groupId>com.bjpowernode.springboot</groupId>
    <artifactId>002-springboot-springmvc</artifactId>
    <version>1.0.0</version>
    <!--maven 项目名称,可以删除-->
    <name>002-springboot-springmvc</name>
    <!--maven 项目描述,可以删除-->
    <description>Demo project for Spring Boot</description>
    <!--maven 属性配置,可以在其它地方通过${}方式进行引用-->
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--SpringBoot 框架 web 项目起步依赖,通过该依赖自动关联其它依赖,不需要我们一个一个去添加了
       -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--SpringBoot 框架的测试起步依赖,例如:junit 测试,如果不需要的话可以删除-->
        <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>
            <!--SpringBoot 提供的打包编译等插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

对 SpringBoot 项目结构进行说明

FF494A72-4624-A612-4D82-8B9CC7F7AF9B.png

  • mvn | mvnw | mvnw.cmd:使用脚本操作执行 maven 相关命令,国内使用较少,可删除
  • .gitignore:使用版本控制工具 git 的时候,设置一些忽略提交的内容
  • static|templates:后面模板技术中存放文件的目录
  • application.properties:SpringBoot 的配置文件,很多集成的配置都可以在该文件中进行配置,例如:Spring、springMVC、Mybatis、Redis 等。目前是空的
  • Application.java:SpringBoot 程序执行的入口,执行该程序中的 main 方法,SpringBoot就启动了
创建一个 Spring MVC 的 SpringBootController

SpringBootController 类所在包:com.lcz.springboot.controller

package com.lcz.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class SpringBootController {
    @RequestMapping(value = "/springBoot/say")
    public @ResponseBody String say() {
        return "Hello,springBoot!";
    }

}

注意:新创建的类一定要位于 Application 同级目录或者下级目录,否则 SpringBoot 加载不到。

A25A6658-F748-8DD4-C07C-87EF88120690.png

例如Application在springboot目录下,那么你新创建的类只能在springboot目录下,可以直接在springboot目录下也可以是springboot目录下的其它目录,一句话来说:只要在springboot目录内就可以读取到!

在 IDEA 中右键,运行 Application 类中的 main 方法

8C3E6E97-4B88-648B-CB9A-05AB1D658146.png

通过在控制台的输出,可以看到启动 SpringBoot 框架,会启动一个内嵌的 tomcat,端口号为 8080,上下文根为空

E980E000-3648-E729-2661-B50F540246FC.png

在浏览器中输入http://localhost:8080//springBoot/say

AC0F1FD9-6E75-6773-B008-C8B07E16E29A.png

入门案例分析
  • Spring Boot 的父级依赖 spring-boot-starter-parent 配置之后,当前的项目就是 SpringBoot 项目
  • spring-boot-starter-parent 是一个 Springboot 的父级依赖,开发SpringBoot 程序都需要继承该父级项目,它用来提供相关的 Maven 默认依赖,使用它之后,常用的 jar包依赖可以省去 version 配置
  • Spring Boot 提供了哪些默认 jar 包的依赖,可查看该父级依赖的 pom 文件
  • 如果不想使用某个默认的依赖版本,可以通过 pom.xml 文件的属性配置覆盖各个依赖项

通过 pom.xml 文件的属性配置覆盖各个依赖项,比如覆盖 Spring 版本:

<properties>
 <spring-framework.version>5.0.0.RELEASE</ spring-framework.version >
</properties>
  • @SpringBootApplication 注解是 Spring Boot 项目的核心注解,主要作用是开启Spring 自动配置,如果在 Application 类上去掉该注解,那么不会启动SpringBoot程序
  • main 方法是一个标准的 Java 程序的 main 方法,主要作用是作为项目启动运行的入口
  • @Controller 及 @ResponseBody 依然是我们之前的 Spring MVC,因为 Spring Boot的里面依然是使用我们的 Spring MVC + Spring + MyBatis 等框架
Spring Boot 的核心配置文件

Spring Boot 的核心配置文件用于配置 Spring Boot 程序,名字必须以 application 开始

核心配置格式

.properties 文件(默认采用该文件)

通过修改 application.properties 配置文件,在修改默认 tomcat 端口号及项目上下文件根

键值对的 properties 属性文件配置方式:

#设置内嵌 Tomcat 端口号
server.port=9090
#配置项目上下文根
server.servlet.context-path=/003-springboot-port-context-path

配置完毕之后,启动浏览器测试

0B9DACC8-6941-223C-B1D2-FE013FC2C657.png

页面显示结果

F4424B9C-F7E0-AA10-6F6A-C2077D14B006.png

.yml 文件

yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比 xml 简洁很多,值与前面的冒号配置项必须要有一个空格, yml 后缀也可以使用 yaml 后缀

65CE9463-E28C-FDFB-E620-112FD59BF457.png

注意:当两种格式配置文件同时存在,使用的是.properties 配置文件,为了演示 yml,可以先将其改名,重新运行 Application,查看启动的端口及上下文根

393C4FB8-BE18-6830-135D-40DE82FCDBF5.png

效果

ADD4D7F9-81B1-116C-6B09-AAA72DF2295A.png

多环境配置

在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境之间切换,SpringBoot 提供了多环境配置,具体步骤如下

为每个环境创建一个配置文件,命名必须以 application-环境标识.properties|yml

9BB6FCAC-6013-9AED-36D2-46EF16A22982.png

收藏 (0)
评论列表
正在载入评论列表...
我是有底线的
为您推荐
    暂时没有数据