SpringBoot学习二:基础配置

时间:2022-07-26
本文章向大家介绍SpringBoot学习二:基础配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.SpringBoot的配置文件

properties 位置优先级:

  1. 项目根目录下的config目录
  2. 当前项目的根目录(与src同级)
  3. resources 目录下的 config 目录下
  4. resources目录下

这四个位置是默认位置,即 Spring Boot 启动,默认会从这四个位置按顺序去查找相关属性并加载。但可以通过 spring.config.location 属性来手动的指定配置文件位置,去指定目录下查找 application.properties 文件。

properties属性注入

book.properties
book.name=三国演义
book.author=罗贯中
book.id=1

properties传统方式在类中注入属性

@Component
//加载配置文件
@PropertySource("classpath:book.properties")
public class Book {
    @Value("${book.id}")
    private Long id;
    @Value("${book.name}")
    private String name;
    @Value("${book.author}")
    private String author;
    //getter/setter
}

SpringBoot类型安全的属性注入

@Component
@PropertySource("classpath:book.properties")
@ConfigurationProperties(prefix = "book")
public class Book {
    private Long id;
    private String name;
    private String author;
    //getter/setter
}

@ConfigurationProperties(prefix = “book”)自动将Spring容器中对应的数据注入到对象属性中,不用@Value挨个注入

yaml yaml与properties的区别是yaml以缩进(空格缩进,不是Tab)代码层级关系, yaml有序,properties无序 yaml对 大小写敏感 书写格式:

key: value
redis:
  redisConfigs:
    - host: 192.168.66.128
      port: 6379
# 注释,: value间有一个空格
#yaml方式注入
@Component
@ConfigurationProperties(prefix = "redis")
public class RedisCluster {
    private List<SingleRedisConfig> redisConfigs;
	//省略getter/setter
}

yaml数组注入 yaml也支持数组注入,例如

my:
  servers:
	- dev.example.com
	- another.example.com

这段数据可以绑定到一个带Bean的数组中:

@ConfigurationProperties(prefix="my")
@Component
public class Config {

	private List<String> servers = new ArrayList<String>();

	public List<String> getServers() {
		return this.servers;
	}
}