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

相关推荐
小蒜学长21 分钟前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统
lee_tianbai23 分钟前
Java SSM 电影票预定系统|完整前后端项目,开箱即用(源码分享)
java·开发语言·数据库
小坏讲微服务35 分钟前
Spring Boot 4 新特性全解析:从上手到生产实战
java·spring boot·后端·架构·springboot4
砚底藏山河38 分钟前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
集智飞行1 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
鱼宵1 小时前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j
HSunR2 小时前
ruoyi 若依 自定义注解 参数校验
java·前端·数据库
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: Docker 是什么以及它如何解决部署环境问题
java·开发语言·docker
老木避暑研究所2 小时前
从原始数据到洞察:一次完整的避暑房环境数据采集、清洗与可视化分析
java·开发语言