springboot的配置信息的设置和读取(application.properties/application.yml)

springboot提供了两种配置信息的文件格式,application.properties和application.yml,基于直接明了,使用方便和高效的前提下下面的配置均采用yml格式配置,

注意

  1. yml采用缩减方式来排列
  2. 键后面紧跟冒号,然后空格,最后是值
  3. 注意里面用到爱好数字的配置信息每个数组值前面的-(横杠)和值之间有一个空格

properties也yml/ymal相互转换

在线yaml转properties-在线properties转yaml-ToYaml.com在线yaml转properties工具 - toyamlhttps://www.toyaml.com/

配置信息的分类(三种)

具体可以查看官网

Spring Boot Reference Documentationhttps://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#legal

springboot标准的配置

例如web服务的端口和上下文路径

Groovy 复制代码
server:
  port: 9999
  servlet:
    context-path: /yuanma

其他第三方配置信息

例如集成redis

Groovy 复制代码
spring:
  data:
    redis:
      host: "localhost"
      port: 6379
      database: 0
      username: "user"
      password: "secret"

自定义配置信息(两种获取信息的方式)

@Value+EL表达式

例如下面配置了邮件信息

Groovy 复制代码
#邮件信息
mail:
  from: 123@qq.com
  to: 456@qq.com
  server: smtp.qq.com
  port: 8888

下面用@Value+EL表达式配置

java 复制代码
package com.burns.yuanma.admin.pojo;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@Data
public class MailProperties {

    /**
     * 发件人
     */
    @Value("${mail.from}")
    private String from;

    /**
     * 收件人
     */
    @Value("${mail.to}")
    private String to;

    /**
     * 服务器地址
     */
    @Value("${mail.server}")
    private String server;

    /**
     * 服务器端口号
     */
    @Value("${mail.port}")
    private String port;
}

@ConfigurationProperties+prefix(前缀)

例如下面的用户信息配置,

Groovy 复制代码
#用户信息
user:
  address: 北京市朝阳区安外大羊坊八号院8号楼2单元112
  name: 张三
  age: 12
  sex: 男
  hobbies:
    - 足球
    - 游泳
    - 骑行
    - 篮球
    - 棒球

获取用户信息

java 复制代码
package com.burns.yuanma.admin.pojo;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "user")
@Data
public class UserProperties {

    /**
     * 姓名
     */
    private String name;

    /**
     * 年齡
     */
    private int age;

    /**
     * 性別
     */
    private String sex;

    /**
     * 郵件
     */
    private String email;

    /**
     * 住址
     */
    private String address;

    /**
     * 愛好
     */
    private String[] hobbies;
}

访问接口获取信息

上面两种方式都可以获取信息

下面是controller

java 复制代码
package com.burns.yuanma.admin.controller;

import com.burns.yuanma.admin.pojo.MailProperties;
import com.burns.yuanma.admin.pojo.UserProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PropertiesController {



    @Autowired
    private UserProperties userProperties;

    @Autowired
    private MailProperties mailProperties;
    @RequestMapping("/userInfo")
    public String userInfo(){
        System.out.println(userProperties.toString());
        return userProperties.toString();
    }

    @RequestMapping("/mailInfo")
    public String mailInfo(){
        System.out.println(mailProperties.toString());
        return mailProperties.toString();
    }

}

访问浏览器

用户信息

http://localhost:9999/yuanma/userInfohttp://localhost:9999/yuanma/userInfo

邮件信息

http://localhost:9999/yuanma/mailInfohttp://localhost:9999/yuanma/mailInfo

相关推荐
间彧几秒前
在实际项目中,如何根据具体业务场景选择合适的并发容器?
后端
小许学java14 分钟前
Spring原理
java·spring·生命周期·作用域·原理
教练、我想打篮球33 分钟前
122 Hession,FastJson,ObjectInputStream的序列化反序列化相同引用的处理
java·config·utils
酷柚易汛1 小时前
酷柚易汛ERP 2025-12-26系统升级日志
java·前端·数据库·php
楼兰胡杨1 小时前
Spring Boot整合Sentinel之QPS限流
spring boot
侠客行03171 小时前
Mybatis入门到精通 一
java·mybatis·源码阅读
消失的旧时光-19431 小时前
微服务的本质,其实是操作系统设计思想
java·大数据·微服务
Coder_Boy_1 小时前
基于SpringAI的智能平台基座开发-(四)
java·人工智能·spring boot·langchain·springai
码界奇点2 小时前
基于Spring Boot的内容管理系统框架设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理
墨雪不会编程2 小时前
C++【string篇1遍历方式】:从零开始到熟悉使用string类
java·开发语言·c++