SpringBoot

  1. 简化Spring开发的框架

优点

  1. 可以快速独立的创建Spring及主流框架集成的项目。
  2. 使用了嵌入式的Servlet容器,无需生成WAR包
  3. 我们在使用SpringBoot进行开发时可以使用Starts启动依赖,而SpringBoot会自动地把所需要的其他相关技术jar包导入.
  4. .大量的自动配置,极大地简化了我们的开发。
  5. 无需XML文件的大量编写,也不会生成代码,底层是利用SpringBoot写好的API来调用实现,开箱即用
  6. SpringBoot也有运维监控项目的功能
  7. SpringBoot与云计算的集成

具体实现

  1. 相关依赖
1
2
3
4
5
6
7
8
9
10
11
 <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
  1. 命令行启动需要依赖maven插件支持
1
2
3
4
5
6
7
8
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
  1. 程序启动,会提供主程序启动类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.itheima;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Springboot06ConfigFileApplication {

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

}

  1. 其他注意的点
  • SpringBoot在创建项目的时候,采用jar的打包方式
  • 引导类就是项目入口,运行main方法就可以启动项目
  • 引导类起到配置类的作用,它会将它及其所在的子包全部扫描一遍

配置文件

  1. 核心配置文件名为application

  2. 配置文件加载顺序

application.properties>application.yml>application.yaml

  1. yaml
  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔
  • #表示注释
  • 核心规则:数据前面要加空格与冒号隔开
  1. 如何使用
  • 设置属性值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //封装yaml对象格式数据必须先声明当前实体类受Spring管控
    @Component
    //使用@ConfigurationProperties注解定义当前实体类读取配置属性信息,通过prefix属性设置读取哪个数据
    @ConfigurationProperties(prefix = "enterprise")
    public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    lesson: SpringBoot

    server:
    port: 80

    enterprise:
    name: itcast
    age: 16
    tel: 4006184000
    subject:
    - Java
    - 前端
    - 大数据

  • 还可以通过vauel注入的形式

    1
    2
    3
    4
    5
    6
    7
    //使用@Value读取单一属性数据
    @Value("${lesson}")
    private String lesson;
    @Value("${server.port}")
    private Integer port;
    @Value("${enterprise.subject[0]}")
    private String subject_00;
  1. 多环境配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#设置启用的环境
spring:
profiles:
active: dev

---
#开发
spring:
config:
activate:
on-profile: dev
server:
port: 80
---
#生产
spring:
profiles: pro
server:
port: 81
---
#测试
spring:
profiles: test
server:
port: 82
---

Spring和Maven多环境兼容

  1. Maven设置中设置多环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<profiles>
<!--开发环境-->
<profile>
<id>dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>

  1. SpringBoot中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#设置启用的环境
spring:
profiles:
active: ${profile.active}

---
#开发
spring:
profiles: dev
server:
port: 80
---
#生产
spring:
profiles: pro
server:
port: 81
---
#测试
spring:
profiles: test
server:
port: 82
---

SpringBoot整合SSM

整合JUnit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.itheima.service;

import com.itheima.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;

@SpringBootTest
public class BookServiceTest {

@Autowired
private BookService bookService;

@Test
public void testGetById(){
Book book = bookService.getById(2);
System.out.println(book);
}

@Test
public void testGetAll(){
List<Book> all = bookService.getAll();
System.out.println(all);
}

}

整合Mybatis

  1. 配置数据库连接
1
2
3
4
5
6
7
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db #?servierTimezone=UTC
username: root
password: root
  1. @Mapper代替Mybatis扫包的动作