SpringBoot005

本文详细介绍了SpringBoot中配置文件的使用方法,包括.yml文件的基本使用、如何切换配置文件、配置文件的注入方式以及@ConfigurationProperties与@Value的区别。通过实例展示了如何在不同环境下使用不同的配置文件,以及如何将配置文件中的属性值映射到Java类中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.配置文件基本使用

使用.yml配置文件,在resources目录下新建application.yml文件

server:
  port: 8081 #修改端口号
  servlet:
    context-path: /lk  #端口号后需额外添加字符
#以上等同于application.properties的以下写法
#server.port=8081
#server.servlet.context-path=/zed

swagger:
  title: SpringBoot学习
  description: SpringBoot学习
  version: 1.0.0
  name: lk
  url: https://pallcard.github.io
  email: 1250585541@qq.com

  • 其中空格有严格的要求
2.切换配置文件

在resources目录下新建application-dev.yml文件,application-prod.yml文件

//文件目录
resources|-
         application.yml
         application-dev.yml
         application-prod.yml

其中application.yml来切换配置文件

spring:
  profiles:
    active: dev

激活文件选择

  • 使用上述application.yml来设置
  • 使用java -jar ***.jar --spring.profiles.active=dev;
  • IDEA中可以如下设置激活配置文件
3.配置文件使用
  • 单值注入 (.yml中值若用双引号,转义字符会转义)
//.yml中
person:
  name: zhangsan \n lisi
  name2: 'zhangsan \n lisi'
  name3: "zhangsan \n lisi"
  age: 18
  boss: false

//使用
    @Value("${person.name}")
    private String name;

    @Value("${person.name2}")
    private String name2;


    @Value("${person.name3}")
    private String name3;

    @Value("${person.age}")
    private String age;

    @Value("${person.boss}")
    private String boss;
  • 批量注入
//application.yml
student:
  name: lk
  age: 23
  boss: false
  birth: 1997/1/1
  maps: {k1: v1, k2: v2}
  lists:
  - 张三
  - 李四
  dog:
    name: 小黑
    age: 2
    
// pojo.Student
@ConfigurationProperties(prefix = "student")
@Component
@Data
public class Student {
    private String name;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<String> lists;
    private Dog dog;
}
// pojo.Dog 
@Data
public class Dog {
    private String name;
    private Integer age;
}

//值注入
 @Autowired
 private Student student;

  • 将配置文件中配置的每一个属性的值,映射到这个组件中
  • @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
  • prefix = “person”:配置文件中哪个下面的所有属性进行一一映射
  • 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
  • @Data是一个插件,免去了getter/setter和toString这些繁琐的东西
4.两种注入区别
@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
松散绑定(松散语法)支持不支持
SpEL: #{}不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

松散语法绑定:last_name = last-name = lastName 他们取的值都是相同的

参考:https://zed058.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值