1.什么是SpringBoot?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用约定大于配置的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。

2.SpringBoot的特性

(1).创建独立的Spring应用程序
(2).内部嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
(3).提供以starter依赖项,以简化构建配置
(4).尽可能自动配置Spring和3rd Party库
(5).提供可用于生产的功能,例如指标,运行状况检查和外部化配置
(6).完全没有代码生成,也不需要XML配置

3.springBoot和Spring和SpringCloud的区别?

Spring是一个开源的轻量级的Java开发框架,它的核心概念是简化应用程序的开发,而SpringBoot是基于Spring的扩展,通过SpringBoot能大大简化应用程序的开发(配置),SpringCloud是一套微服务框架的规范,它不是具体的框架,像SpringCloud的组件是基于SpringBoot构建

4.创建一个SpringBoot应用

(1).打开idea,点击左上方的File->Project,打开之后如下图,创建SpringBoot应用的方式有很多种,例如:创建Maven项目、创建Gradle项目、使用Spring initializr创建SpringBoot应用,以下的例子就通过Spring initializr的方法来创建SpringBoot项目,Spring initializr是spring官方推出的创建SpringBoot应用的工具

SpringBoot介绍 - 图1

SpringBoot介绍 - 图2

一直next就行了,创建好了之后maven就会下载项目的依赖,趁这个时候我们可以多人运动一下

(2).项目目录说明

SpringBoot介绍 - 图3

(3).编写SpringBoot启动类

  1. package com.fly.demo;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class DemoApplication {
  6. public static void main(String[] args) {
  7. SpringApplication.run(DemoApplication.class, args);
  8. //也可以下面这种方式
  9. //SpringApplication.run(DemoApplication.class);
  10. }
  11. }

启动类很简单,就两步操作,第一步在启动类上加上@SpringBootApplication注解标识这是一个SpringBoot应用,第二步是在main方法中调用SpringApplication.run指定启动类

(4).编写配置
SpringBoot支持2种文件格式配置,分别是properties和yaml,properties的优先级高于yml,SpringBoot在启动时会默认加载resources目录下的application.properties或application.yaml(只配置其中一种方式即可)

application.properties配置内容截图:

SpringBoot介绍 - 图4

application.properties内容:

  1. #指定项目启动端口
  2. server.port=8080
  3. #指定项目名称
  4. spring.application.name=spring-demo01

application.yml配置截图:

SpringBoot介绍 - 图5

application.yml配置内容:


server:
  port: 8080
spring:
  application:
    name: spring-demo01

4.1 多环境配置:

在实际开发中项目可分为开发(dev)、测试(test)、性能(perform)、正式等阶段,我们可以在不同阶段使用不同配置,我又创建了application-dev.properties(开发配置文件)、application-test.properties(测试配置文件)、application-perform.properties(性能测试配置文件)3个配置文件,使用这3个配置也很简单,只需要在application.properties中使用spring.profiles.active指定开发环境即可,例如下图:

SpringBoot介绍 - 图6

(5).通过插件打包成jar或war文件
打包jar或war文件主要通过spring-boot-maven-plugin,为了方便测试我又在项目在添加了web依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.fly</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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>

</project>

为了方便测试所以添加了一个Controller,其内容如下:

package com.fly.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @RequestMapping("/hello")
    public String hello(){

        return "hello";
    }

}

(5-1).图形化打包(方式1,这种打包会包含测试用例,打包速度不快):

SpringBoot介绍 - 图7

终端进入项目根目录的target目录,执行 java -jar jar文件名

SpringBoot介绍 - 图8

测试,浏览器输入localhost:8080/hello即可测试,测试效果图如下:

SpringBoot介绍 - 图9

(5-2).命令打包(方式2):
在终端进入在项目的根目录,执行mvn install -Dmaven.test.skip=true命令,-Dmaven.test.skip=true表示会跳过单元测试,所以打包起来会快一点

(5-3).打包成war包。只需要在pom.xml文件中添加<packaging>war</packaging>即可,打成jar包就填jar,war就填war,剩余的打包步骤还是一样的

SpringBoot介绍 - 图10