SpringBoot2:基础篇(黑马程序员:P1~P53)

基础篇

1、SpringBoot入门案例

1.1 IDEA联网版

官方URL https://start.spring.io
注:如果创建不了,更改URL https://start.aliyun.com

① 创建新模块

SpringBoot2:基础篇(黑马程序员:P1~P53)_第1张图片

② 选择当前模块需要使用的技术集

SpringBoot2:基础篇(黑马程序员:P1~P53)_第2张图片

③ 开发控制器类

SpringBoot2:基础篇(黑马程序员:P1~P53)_第3张图片

④ 运行自动生成的Application类

SpringBoot2:基础篇(黑马程序员:P1~P53)_第4张图片

⑤ 运行测试

SpringBoot2:基础篇(黑马程序员:P1~P53)_第5张图片

注:Spring程序与SpringBoot程序对比

SpringBoot2:基础篇(黑马程序员:P1~P53)_第6张图片

1.2 官网创建版

官网链接
SpringBoot2:基础篇(黑马程序员:P1~P53)_第7张图片

1.3 手工制作版

① 创建新模块

SpringBoot2:基础篇(黑马程序员:P1~P53)_第8张图片

② 导入坐标

SpringBoot2:基础篇(黑马程序员:P1~P53)_第9张图片

③ 制作引导类

SpringBoot2:基础篇(黑马程序员:P1~P53)_第10张图片

④ 运行测试

SpringBoot2:基础篇(黑马程序员:P1~P53)_第11张图片

1.4 隐藏指定文件/文件夹

SpringBoot2:基础篇(黑马程序员:P1~P53)_第12张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第13张图片

2、入门案例解析

2.1 SpringBoot简介

SpringBoot2:基础篇(黑马程序员:P1~P53)_第14张图片

2.2 parent

SpringBoot2:基础篇(黑马程序员:P1~P53)_第15张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第16张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第17张图片

2.3 starter

在这里插入图片描述

2.4 parent和starter对比

SpringBoot2:基础篇(黑马程序员:P1~P53)_第18张图片

2.5 引导类

SpringBoot2:基础篇(黑马程序员:P1~P53)_第19张图片

2.6 内嵌tomcat

SpringBoot2:基础篇(黑马程序员:P1~P53)_第20张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第21张图片

2.7 辅助功能

SpringBoot2:基础篇(黑马程序员:P1~P53)_第22张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第23张图片

2.8 内置服务器

SpringBoot2:基础篇(黑马程序员:P1~P53)_第24张图片

3、基础配置

3.1 属性配置

SpringBoot2:基础篇(黑马程序员:P1~P53)_第25张图片
springboot Application文档
SpringBoot2:基础篇(黑马程序员:P1~P53)_第26张图片

3.2 不同配置文件优先级

SpringBoot2:基础篇(黑马程序员:P1~P53)_第27张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第28张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第29张图片

3.3 解决yaml和yml文件没提示

SpringBoot2:基础篇(黑马程序员:P1~P53)_第30张图片

3.4 配置文件书写格式

① yaml语法规则

SpringBoot2:基础篇(黑马程序员:P1~P53)_第31张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第32张图片

② 字面值表示方式

SpringBoot2:基础篇(黑马程序员:P1~P53)_第33张图片

③ 数组表示方式

SpringBoot2:基础篇(黑马程序员:P1~P53)_第34张图片

country: china
province: guangdo
city: shanwei
area: chengqu

port: 8080

party: true

birthday: 2000-07-29

user1:
  name: zyy
  age: 22

a:
  b:
    c:
      d: 123

likes1:
  - game
  - music
  - sleep


likes2: [ game,music,sleep ]

users1:
  - name: zyy
    age: 23
  - name: zqh
    age: 24

users2:
  - name: zyy
    age: 23

  - name: zqh
    age: 24

users3: [ { name: zyy,age: 23 },{ name: zqh,age: 24 } ]


baseDir: c:\windows

# 使用${属性名} 引用数据
temoDir1: ${baseDir}\temp

# 使用引号包裹的字符串,其中的转义字符可以生效
temoDir2: "${baseDir}\temp \t1 \t2 \t3"

3.5 读取yaml配置文件的数据

SpringBoot2:基础篇(黑马程序员:P1~P53)_第35张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第36张图片

@RestController
@RequestMapping("/books")
public class BookController {

    //读取yaml数据中的单一数据
    @Value("${country}")
    private String country;

    @Value("${user1.name}")
    private String name;

    @Value("${likes1[1]}")
    private String likes1;

    @Value("${users1[0].age}")
    private int age;

    @Value("${temoDir1}")
    private String temoDir1;

    @Value("${temoDir2}")
    private String temoDir2;

    @GetMapping
    public String getById() {
        //country ====== china
        System.out.println("country ====== " + country);

        //name ====== zyy
        System.out.println("name ====== " + name);

        //like1 ====== music
        System.out.println("like1 ====== " + likes1);

        //age ====== 23
        System.out.println("age ====== " + age);

        //temoDir ====== c:\windows\temp
        System.out.println("temoDir1 ====== " + temoDir1);

        //temoDir2 ====== c:\windows	emp 	1 	2 	3
        System.out.println("temoDir2 ====== " + temoDir2);
        return "SpringBoot is running...";
    }
}

3.6 解决读取yaml配置文件数据的痛点

SpringBoot2:基础篇(黑马程序员:P1~P53)_第37张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第38张图片

@RestController
@RequestMapping("/books")
public class BookController {

    //读取yaml数据中的单一数据
    //使用自动装配将所有的数据封装到一个对象Environment中
    @Autowired
    private Environment env;
    

    @GetMapping
    public String getById() {
        //china
        System.out.println(env.getProperty("country"));
        //zyy
        System.out.println(env.getProperty("user1.name"));

        return "SpringBoot is running...";
    }
}

3.7 封装数据

SpringBoot2:基础篇(黑马程序员:P1~P53)_第39张图片

// 1、定义数据模型封装yaml文件中对应的数据
// 2、定义为spring管控的bean
@Component
// 3、指定加载的数据
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {

    private String driver;
    private String url;
    private String username;
    private String password;

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "MyDataSource{" +
                "driver='" + driver + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

SpringBoot2:基础篇(黑马程序员:P1~P53)_第40张图片

4、整合第三方技术

4.1 整合Junit

SpringBoot2:基础篇(黑马程序员:P1~P53)_第41张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第42张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第43张图片

4.2 整合MyBatis

① 创建新模块

SpringBoot2:基础篇(黑马程序员:P1~P53)_第44张图片

② 选择当前模块需要使用的技术集

SpringBoot2:基础篇(黑马程序员:P1~P53)_第45张图片

③ 设置数据源参数

SpringBoot2:基础篇(黑马程序员:P1~P53)_第46张图片

④ 定义数据层接口与映射配置

SpringBoot2:基础篇(黑马程序员:P1~P53)_第47张图片

⑤ 运行测试

SpringBoot2:基础篇(黑马程序员:P1~P53)_第48张图片

4.3 整合MyBatis常见问题

SpringBoot2:基础篇(黑马程序员:P1~P53)_第49张图片

4.4 整合MyBatis-Plus

① 手动添加SpringBoot整合MyBatis-Plus的坐标

SpringBoot2:基础篇(黑马程序员:P1~P53)_第50张图片

② 定义数据层接口与映射配置

SpringBoot2:基础篇(黑马程序员:P1~P53)_第51张图片

③ 设置相关的配置文件

SpringBoot2:基础篇(黑马程序员:P1~P53)_第52张图片

4.5 整合Druid

SpringBoot2:基础篇(黑马程序员:P1~P53)_第53张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第54张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第55张图片

5、SSMP整合案例制作

5.1 导入lombok

SpringBoot2:基础篇(黑马程序员:P1~P53)_第56张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第57张图片

5.2 数据库id自增

SpringBoot2:基础篇(黑马程序员:P1~P53)_第58张图片

5.3 开启日志

SpringBoot2:基础篇(黑马程序员:P1~P53)_第59张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第60张图片

5.4 配置分页插件

SpringBoot2:基础篇(黑马程序员:P1~P53)_第61张图片

SpringBoot2:基础篇(黑马程序员:P1~P53)_第62张图片

5.5 条件查询功能

SpringBoot2:基础篇(黑马程序员:P1~P53)_第63张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第64张图片

5.6 业务层快速开发

SpringBoot2:基础篇(黑马程序员:P1~P53)_第65张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第66张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第67张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第68张图片

5.7 数据统一

SpringBoot2:基础篇(黑马程序员:P1~P53)_第69张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第70张图片

5.8 异常信息处理

SpringBoot2:基础篇(黑马程序员:P1~P53)_第71张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第72张图片
SpringBoot2:基础篇(黑马程序员:P1~P53)_第73张图片

5.9 前后端协议联调

你可能感兴趣的:(JavaEE,spring,java,intellij-idea)