首页 > 其他分享 >springboot配置与获取配置数据

springboot配置与获取配置数据

时间:2024-11-15 09:43:33浏览次数:1  
标签:springboot 配置 System private name 获取 String println out

配置文件

SpringBoot是基于约定的,所以很多配置都有默认值(如端口号),但如果想使用自己的配置替换默认配置的话,
就可以使用application.properties或者application.yml(application.yaml)进行配置。配置文件默认在resources文件下
properties(键值对,且优先级在yml之前)

server.port=8080

yml(冒号和值之间要有空格)

server:
  prot: 8080

springboot中对于配置文件的加载顺序:properties>yml>yaml

yaml语法

YAML全称是YAML Ain't Markup Language。
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,
比如:C/C++,Ruby,Python,Java,Per,C#,PHP等。YML文件是以数据为核心的,比传统的xmI方式更加简洁。
YAML文件的扩展名可以使用.yml或者.yaml。

1、大小写敏感
2、数据值前边必须有空格,作为分隔符
3、使用缩进表示层级关系
4、缩进时不允许使用Tab键,只允许使用空格(各个系统的Tab对应的空格数目可能不同会导致层次混乱)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
5、# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

server:
  port:8080
  address:127.0.0.1
name: abc

yaml数据格式

对象(map):键值对的集合。

person:
  name:zhangsan
#行内写法
person:{name: zhangsan}

数组:一组按次序排列的值

address:
 - beijing
 - shanghai
#行内写法
address: [beijing,shanghai]

纯量:单个的、不可再分的值

msg1: 'hello \n world' #单引忽略转义字符
msg2: "hello \n world" #双引识别转义字符

参数引用

name: edhug
person: 
  name: ${name}

总结

1)配置文件类型
●properties:和以前一样
●yml/yaml:注意空格

2)yaml特点:简洁、以数据为核心

3)基本语法:
大小写敏感
数据值前边必须有空格,作为分隔符
使用空格缩进表示层级关系,相同缩进表示同一级

4)数据格式:对象、数组:使用“-”表示数组每个元素、纯量

5)参数引用:${key值}

获取配置文件内容的三种方式

1)@Value
2)Environment
3)@ConfigurationProperties

package com.edhug.springbootinit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
##@Value方式获取
    @Value("${name}")
    private String name1;
    @Value("${person1.name}")
    private String name2;
    @Value("${person1.age}")
    private int age;
    @Value("${address1[0]}")
    private String address1;
    @Value("${msg1}")
    private String msg1;
    @Value("${msg2}")
    private String msg2;
##Environment方式获取
    @Autowired
    private Environment env;
##@ConfigurationProperties方式获取这种方式需要单独编写配置类
    @Autowired
    private Person person;

    @RequestMapping("/hello2")
    public void hello2(){
        System.out.println(name1);
        System.out.println(name2);
        System.out.println(age);
        System.out.println(address1);
        System.out.println(msg1);
        System.out.println(msg2);
        System.out.println("-------------------------");
        System.out.println(env.getProperty("person1.name"));
        System.out.println(env.getProperty("person1.age"));
        System.out.println(env.getProperty("address1[0]"));
        System.out.println("-------------------------");
        System.out.println(person);

    }
    @RequestMapping("/hello")
    public String hello(){
        return "hello spring boot";
    }
}

对应@ConfigurationProperties方法编写的配置类

package com.edhug.springbootinit;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//被spring所识别
@Component
//指定yml中对应的属性名称
@ConfigurationProperties(prefix = "person1")
public class Person {
    private String name;
    private int age;
    private String address[];

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String[] getAddress() {
        return address;
    }

    public void setAddress(String[] address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

标签:springboot,配置,System,private,name,获取,String,println,out
From: https://www.cnblogs.com/Edehuag/p/18543877

相关文章

  • SpringBoot中监听器、过滤器、拦截器和AOP详解
    SpringBoot中监听器、过滤器、拦截器和AOP详解在构建SpringBoot应用程序时,监听器(Listener)、过滤器(Filter)、拦截器(Interceptor)和面向切面编程(AOP)是四种常用的机制,它们各自有不同的用途和执行时机。本文将详细介绍这四种技术的执行时机和区别,并附上示例代码帮助理解。1.......
  • 关闭ssh使用DNS、秘钥检查的配置
    一、何为UseDNS?何为GSSAPIAuthentication?1.关闭UseDNS和GSSAPIAuthentication   UseDNSyse:服务器会先根据客户端的IP地址进行DNSPTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始IP地址一致,通过此种措施来防止客户......
  • 自动化测试环境配置-selenium库和谷歌浏览器版(离线安装)
    环境下载链接:https://pan.baidu.com/s/1acJJrA087zf_e02at3hoUg?pwd=f83d提取码:f83d 第一步,取消谷歌浏览器的自动升级 再去控制面板卸载原来的谷歌浏览器 第二步,安装谷歌浏览器80版本 通过设置查看版本号,该版本是不会自动升级的 第三步:直接使用下载好的驱动......
  • 自动化测试环境配置-selenium库和谷歌浏览器版
    浏览器和插件下载地址:通过网盘分享的文件:自动化测试安装包链接:https://pan.baidu.com/s/1acJJrA087zf_e02at3hoUg提取码:f83d第一步,取消谷歌浏览器的自动升级  再去控制面板卸载原来的谷歌浏览器  第二步,安装谷歌浏览器80版本  通过设置查看版本号,该版本是不会......
  • 【开题报告】基于Springboot+vue相机品牌在线商城(程序+源码+论文) 计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,越来越多的消费者倾向于在线购物,特别是在购买电子产品如相机这类高价值商品时。相机品牌在线商城作为电子商务的一个重要分支,......
  • 【开题报告】基于Springboot+vue智能汽车租赁系统的设计与实现(程序+源码+论文) 计算机
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着科技的飞速发展和城市化进程的加快,智能汽车已经成为未来交通的重要趋势。智能汽车不仅具备传统汽车的行驶功能,更融入了先进的物联网、大数据、人......
  • Chromium浏览器个人配置记录
    以百分浏览器为例(基于Chromium)小号字体显示的缩在一起,很别扭在设置->外观->自定义字体->最小字号设置大一点,我的是12鼠标悬浮在网页选项卡上方时禁用缩略图预览按以下步骤进行:chrome://flags/找到TabHoverCardImages,并禁用禁用选中文字右键后的"复制指向突出显示的内......
  • 基于SpringBoot+Vue的多媒体素材库设计与实现毕设(文档+源码)
    目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:         大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的多媒体素材库,项目源码请点击文章末尾联系我哦~目前有各类成品毕设JavaWeb SSM......
  • 基于SpringBoot+Vue的学生干部管理系统设计与实现毕设(文档+源码)
    目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:         大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的学生干部管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品毕设JavaWeb......
  • 【开题报告】基于Springboot+vue幼儿园管理系统(程序+源码+论文) 计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息化技术的飞速发展和普及,各行各业都在积极探索数字化转型的道路,教育行业也不例外。幼儿园作为儿童启蒙教育的重要阶段,其管理效率和质量直接影......