Spring Boot 简介

简介

1.什么是Spring Boot?
Spring是新一代JavaEE开发标准 为我们提供了便捷的开发方式
Spring Boot就是Spring开源框架下的子项目,是Spring的一站式解决方案,主要是简化了Spring的使用难度,降低了对配置文件的要求,使得开发人员能够更容易得上手。
2.为什么使用Spring Boot?
SpringBoot有很多得优点

  • 1.简化了Spring配置文件,
  • 2.没有代码和XML文件的生成
  • 3.内置TomCat
  • 4.能够独立运行
  • 5.简化监控
  • n.等等

快速开始

使用IDEA快速创建项目

  1. 打开IDEA工具选择新建项目
  2. 选择 Springinitialzr 快速创建SpringBoot应用程序

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_java

  1. 创建过程可能较慢 具体看网络

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_docker_02

  1. 填写创建项目的相关信息
  • groupId 你公司的域名反转
  • artifactId 你的项目名字
  • version 项目的版本号 1.0.0 或者 0.0.1都可以
  • description 项目的描述
  • package 包名

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_java_03

  1. 填写完成点击Next => finish 稍等片刻
  • 第一次创建可能需要较长时间
  1. 等下边加载完即可查看左侧完整的项目结构
  2. 这个 xxxxApplication.java 是SpringBoot应用程序的主类

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_java_04


8. 在里边添加以下代码

package cn.yufire.springbootdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class SpringbootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }

    @GetMapping("/hello")
    public String helloSpringBoot(){
        return "hello, world";
    }
    
}
  1. 点击右上角的启动或者项目类名左边的启动按钮

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_spring boot_05

  1. 控制台输出

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_docker_06

  1. 打开浏览器访问
    localhost:8080/hello

idea debug 启动springboot项目的时候一定要把断点去掉 idea run springboot_spring_07

项目创建完成后的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--SpringBoot父依赖 版本号都在里边-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!--SpringBoot的版本-->
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--组织ID  一般是你的域名 或你公司的域名 反转-->
    <groupId>cn.yufire</groupId>
    <!--项目名称-->
    <artifactId>springboot-demo</artifactId>
    <!--项目的版本号-->
    <version>1.0.0-SNAPSHOT</version>
    <!--项目名称-->
    <name>springboot-demo</name>
    <!--项目的描述-->
    <description>Demo project for Spring Boot</description>

    <!--java版本-->
    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!--所有的Maven依赖-->
    <dependencies>
        <!--Spring-boot-starter-Web模块的依赖 实现Web的主要模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Spring-Boot的测试模块-->
        <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>

    <!--使用Maven插件进行构建项目-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

娱乐Banner.txt 没什么卵用

Banner.txt的作用:

  • 1.可以在Spring Boot项目启动时候显示一些东西
  • 1.1.SpringBoot的版本信息
  • 1.2.可以显示一个自定义的字符画 自定义Banner
  • 1.3.等等
${AnsiColor.BRIGHT_RED}

//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机     永无BUG                  //

-----版本号-----${spring-boot.version}

SpringBoot配置文件优先级

  • 项目根路径下的config目录下的 /config/application.* 优先级最高
  • 项目根路径下 /application.* 优先级第二
  • 项目的resources目录下的config目录下的 /src/main/resources/config/application.* 优先级第三
  • 项目的resources目录下的 /src/main/resources/application.* 优先级最低

JSR303数据校验

用户在前端页面上填写表单时,前端js程序会校验参数的合法性
当数据到了后端,为了防止恶意操作,保持程序的健壮性
后端同样需要对数据进行校验

JSR303
是一套JavaBean参数校验的标准,定义了很多常用的校验注解
可以直接将这些注解加在我们JavaBean的属性上面
就可以在需要校验的时候进行校验了

  1. 首先在需要校验的JavaBean上添加 注解
@Validated  //JSR-303校验
  1. 在需要校验的属性身上添加注解
    2.1 JSR303的常用注解 JSR303的常用注解地址
@NotNull(message = "姓名不能为空")
    private String name;
    @Min(value = 0 ,message = "年龄不能小于0岁")
    private Integer age;
  1. 修改yml中的配置 把其中的name属性设置为空
  2. 测试 结果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-znEwIdD6-1588560141805)(BB9FD67E0FEB464491C7DFEBC1903D22)]

排除某个特定的配置

在SpringBoot启动类里边的配置上添加

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

Spring Boot的常用配置

server
    port: 8080 # 配置Tomcat启动端口
    servlet:
        context-path: /boot #配置上下文 就是在访问地址前加上这个字符串