springboot配置文件

目录

1.配置文件的作用

2.配置文件的格式

规则:

3.properties配置文件

3.1priperties基本语法

3.2读取配置文件

4.yml配置文件

4.1yml基本语法

4.2 yml 使⽤进阶

4.2.1 yml 配置不同数据类型及 null

4.2.2 配置对象

4.2.3 配置集合

 5.properties vs yml


1.配置文件的作用

1.项目中的数据都在配置文件中配置

2.数据库连接信息

3.项目的启动端口

4.第三方系统的调用秘钥等信息

5.用于发现和定位问题的普通日志和异常日志

配置文件的分类:

1.系统的配置文件

2.用户自定义文件

2.配置文件的格式

.propertiex  .yml

规则:

1.一个项目中可以存下两个配置文件,但不建议一个项目中出现两种配置文件

2.当一个项目的某个配置,出现两种配置文件时,配置会以properies为主(忽略yml配置)

3.properties配置文件

3.1priperties基本语法

key=value

#是注释

#前后不能加空格
server.port=9090
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

3.2读取配置文件

项目中,要主动读取配置文件的内容,要使用@Value实现

@Value要使用${}的格式读取

@Controller
public class UserController {
    @Value("${server.port}")//读取配置文件项
    private String port;
    @ResponseBody//返回一个非静态页面的数据
    @RequestMapping("sayhi")//设置路由地址-->必须小写
    public String sayHi(){
        return "hello,World.| port:"+port;
    }
}

 

4.yml配置文件

yml优点:

  • 可读性高,写法简单
  • 支持更多数据类型
  • 执行更多变成语言

4.1yml基本语法

key: value

key和value之间要用冒号加空格组成

 配置文件

server:
  port: 9092
myyml:
  string: hello,yml

打印类的实现 

@Controller
public class UserController {
    @Value("${myyml:string}")
    private String ymlstr;
    @Value("${server:port}")
    private String port;
    @ResponseBody
    @RequestMapping("/sayhi")
    public String sayHi(){
        System.out.println("ymlstr:"+ymlstr);
        System.out.println("port:"+port);
        return "hello,world";
    }
}

输出 

 使⽤ yml 连接数据库

#连接数据库
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
    name: root
    password: 123456

4.2 yml 使⽤进阶

4.2.1 yml 配置不同数据类型及 null

#字符串
string.value: hello

#布尔值
boolean.value: true
boolean.value: false

#整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制

#浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法

# Null,~代表null
null.value: ~

 4.2.1.1 yml 配置读取

 

 结论:

  • 字符串默认不用加单引号或者双引号
  • 不加或者单引号会原样输出
  • 双引号特殊字符会作为本事想表达的样子输出

4.2.2 配置对象

#对象写法1
student1:
  id: 1
  name: 张三
  age: 18

或者是使⽤⾏内写法(与上⾯的写法作⽤⼀致)

#对象写法2
student2: {id: 2,name: 李四,age: 20}

这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解

@ConfigurationProperties 来读取

@Data//集合注解
@ConfigurationProperties(prefix="student1")//读取对象
@Component //启动读取,要加五大类注解
public class Student {
    private int id;
    private String name;
    private int age;
}

打印类的实现

@Controller
public class UserController {
    @Autowired
    private Student student;
    @ResponseBody
    @RequestMapping("/sayhi")
    public String sayHi(){
        return "student:"+student;
    }
}

 

4.2.3 配置集合

配置⽂件也可以配置 list 集合

dbtypes:
 name:
 - mysql
 - sqlserver
 - db2

或者是使⽤⾏内写法(与上⾯的写法作⽤⼀致)

dbtypes: {name: [mysql,sqlserver,db2]} 

集合的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的

@Component
@Data
@ConfigurationProperties("dbtypes")//读取配置文件中的集合
public class ReadList {
    private List<String> name;
}
@Controller
public class UserController {
    @Resource private ReadList readList;

    @ResponseBody
    @RequestMapping("/sayhi")
    public String sayHi() {
          return "readList"+readList;
    }
}

 5.properties vs yml

  • properties是以key=value的形式配置文件,yml是以冒号+空格配置文件的
  • yml可以解决数据冗余的问题
  • yml可以支持多种语言
  • yml支持多种数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值