SpringBoot

161 阅读3分钟

SpringBoot

SpringBoot 时由 Pivotal 团队提供的全新框架,其设计的目的是用来简化 Spring 应用的初始搭建过程

配置文件

  1. SpringBoot 的配置可以通过 main/resources/application.properties 修改
  2. 在 main/resources 下创建一个 application.yml 文件
  3. 在 main/resources 下创建一个 application.yaml 文件

当选择使用 .yml/.yaml 文件做配置文件时,记得把 application.properties 文件删除,最好只存在一个配置文件 最常使用的配置文件是:.yml 文件 当三个文件都存在的时候优先级:.properties > .yml > .yaml

yaml / yml

YAML(YAML Ain't Markup Language):一种序列化格式

  1. 优点
  • 容易阅读
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式
  1. 常见的拓展名 5 - .yml
  • .yaml
  1. yaml 语法规则
  • 大小写敏感

  • 属性层级关系使用多行描述,每行结尾使用冒号结束

  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许是同 Tab 键)

  • 属性前面添加空格(属性名与属性值之间使用冒号 + 空格(: )作为分割)

  • # 表示注释

  • 核心规则:数据前面要加空格与冒号隔开(: )

yaml / yml 的书写格式

  1. 以键值对表示数据,Key 和 Value 使用(: )冒号加空格隔开,使用 - 来表示一个数组
lesson: AAA

properties:
  name: Lee
  age: 16
  tel: 199230230
  subject:
    - Java
    - 前端
    - 大数据
  1. 如果获取 yaml/yml 文件定义的配置信息(以上 yaml 为例)
  • 自动装配
@Controller
public class UserController {
    
    @Value("${lesson}")
    private String lesson;
    
    @Value("${properties.name}")
    private String name;
    
    @Value("${properties.subject[0]}")
    private String subject_0;
    
}
  • 自动注入一个 springboot 提供的 Environment 对象直接读取整个配置文件,再用 getProperties 方法获取指定的配置项
@Controller
public class UserController {

    @Autowired
    private Environment environment;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id) {
        System.out.println(environment.getProperties("lesson"));
        System.out.println(environment.getProperties("properties.name"));
        System.out.println(environment.getProperties("properties.subject[0]"));
    }

}
  • 定义一个实体类用来封装其中的某一部分数据使用
  • 先要在类上加 @Component 使该实体类为一个 Bean,才嗯那个自动装配使用
  • @ConfigurationProperties(prefix = "enterprise"),prefix 指定要读取那一部分的数据。

多环境开发

  1. 使用 yml/yaml 文件做配置文件
  • 多套环境之间使用 --- 分割
  • 只当当前那套环境起作用 spring: profiles: 环境名称
spring:
  profiles:
    active: dev

# 开发环境
server:
  port: 9000

---

# 生产环境
spring:
  profiles: pro
server:
  port: 9001

---

# 测试环境
spring:
  profiles: test
server:
  port: 9002
  1. 使用 properties 文件作为配置文件
  • 需要使用多个 properties 文件,主文件 application.properties 指定需要使用的环境
  • dev/pro/test 三个环境各自一个配置文件,格式为 application-(dev/pro/test).properties
  • 使用 properties 文件做多环境时,注意各个文件之间的命名规则
# application.properties 文件
spring.profiles.active=dev // 指定使用 application-dev.properties
  
# application-dev.properties 文件
server.port=9000

# application-pro.properties 文件
server.port=9001

# application-test.properties 文件
server.port=9002
  1. 配置了多环境之后,打包出来的 jar 文件也可以指定环境执行,只当端口等参数
// 执行 jar 包时指定使用 test 环境
java -jar springboot.jar --spring,profiles.active=test

// 修改启动端口
java -jar springboot.jar --spring,profiles.active=test --server.port=8008

整合 MyBatis

  1. 添加数据库的配置信息
  • 在 .yml/.yaml 配置文件中添加
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/todo
    username: root
    password: 123456
  1. 根据表结构新建实体类

  2. 新建 dao 包,每个 Dao 类都是用 @Mapper 注解标记