springboot基础--springboot配置说明

一、springboot中的配置文件

1、springboot为什么还需要用配置文件

  1. 方便我们修改springboot默认的配置;
  2. 我们有其他的信息需要保存在配置文件中;

2、springboot中的配置文件有哪些

  1. properties配置文件;
  2. yml配置文件;

3、springboot中的配置文件使用中注意事项

  1. 文件放入在src/main/resources目录或者是类路径/config目录下;
  2. springboot默认读取以application开头的配置文件

二、yml 语法说明

1、yml语法

yml的基本语法

  • key: value的格式(value前面的空格不能少,可以有多个,不能用tab替代);
  • 大小写敏感;
  • 字符串默认不需要使用引号,单引号和双引号的区别在于是否能用转义字符;
  • 注释方式: #

yml支持的三种数据类型

  • 字面量:直接量,单个不能被拆分的值(数字、字符串、布尔)
  • 对象:键值对形式存在
  • 数组:字面量/对象的集合

三、 yml 演示

1、创建配置文件

src/main/resources/application.yml

person:
  name: zhangsan
  sex: famale
  age: 19
  isMerried: false
  books: [三国演义,红楼梦,水浒传]
  pets:
    - 金毛
    - 多不多啦
    - 吉娃娃
  friends:
    [{name: zhangxueyou,sex: male},{name: 刘德华,sex:}]


2、定义实体类

src/main/java/com/study/springboot02/bean/Friend.java

import org.springframework.stereotype.Component;


@Component
public class Friend {
    private String name;
    private String sex;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Friend{" +
                "name='" + name + '\'' +
                ", sex=" + sex +
                '}';
    }
}

src/main/java/com/study/springboot02/bean/Person.java


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

import java.util.Arrays;
import java.util.List;


@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private String sex;
    private Integer age;
    private boolean isMerried;
    private List<String> books;
    private String [] pets;
    private List<Friend> friends;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

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

    public boolean isMerried() {
        return isMerried;
    }

    public void setMerried(boolean merried) {
        isMerried = merried;
    }

    public List<String> getBooks() {
        return books;
    }

    public void setBooks(List<String> books) {
        this.books = books;
    }

    public String[] getPets() {
        return pets;
    }

    public void setPets(String[] pets) {
        this.pets = pets;
    }

    public List<Friend> getFriends() {
        return friends;
    }

    public void setFriends(List<Friend> friends) {
        this.friends = friends;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", isMerried=" + isMerried +
                ", books=" + books +
                ", pets=" + Arrays.toString(pets) +
                ", friends=" + friends +
                '}';
    }
}


3、测试

src/test/java/com/study/springboot02/Springboot02ApplicationTests.java

@SpringBootTest
class Springboot02ApplicationTests {
    @Autowired
    private Person person;

    @Test
    void contextLoads() {
        System.out.println(person);
    }

}

四、properties演示

src/main/java/com/study/springboot02/bean/Friend.java

import org.springframework.stereotype.Component;


@Component
public class Friend {
    private String name;
    private String sex;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Friend{" +
                "name='" + name + '\'' +
                ", sex=" + sex +
                '}';
    }
}

src/main/java/com/study/springboot02/bean/Person.java

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

import java.util.Arrays;
import java.util.List;


@Component
@ConfigurationProperties(prefix = "person1")
public class Person {

    private String name;
    private String sex;
    private Integer age;
    private boolean isMerried;
    private List<String> books;
    private String [] pets;
    private List<Friend> friends;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

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

    public boolean isMerried() {
        return isMerried;
    }

    public void setMerried(boolean merried) {
        isMerried = merried;
    }

    public List<String> getBooks() {
        return books;
    }

    public void setBooks(List<String> books) {
        this.books = books;
    }

    public String[] getPets() {
        return pets;
    }

    public void setPets(String[] pets) {
        this.pets = pets;
    }

    public List<Friend> getFriends() {
        return friends;
    }

    public void setFriends(List<Friend> friends) {
        this.friends = friends;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", isMerried=" + isMerried +
                ", books=" + books +
                ", pets=" + Arrays.toString(pets) +
                ", friends=" + friends +
                '}';
    }
}


2、创建配置文件

server.port=9999

person1.name=lisi
person1.sex=famale
person1.age=19
person1.isMerried=false
person1.books[0]=三国演义
person1.books[1]=红楼梦
person1.pets[0]=金子
person1.pets[1]=银子
person1.pets[2]=童子
person1.friends[0].name=zhangsan
person1.friends[0].sex=male
person1.friends[1].name=lisi
person1.friends[1].sex=female

3、测试

src/test/java/com/study/springboot02/Springboot02ApplicationTests.java

@SpringBootTest
class Springboot02ApplicationTests {
    @Autowired
    private Person person;

    @Test
    void contextLoads() {
        System.out.println(person);
    }

}

五、注意事项

application.properties和application.yml同时都有的情况下,

优先读取application.properties的配置内容

未制定配置文件,默认application.properties和application.yml配置文件

六、乱码问题如何处理

需要在Idea中配置编码为utf-8

如果设置完后,还是显示乱码,需要在properties中添加一句:

spring.http.encoding.enabled=true

七、yml的value注入

在这里插入图片描述

src/main/java/com/study/springboot02/bean/Person.java

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

import java.util.Arrays;
import java.util.List;


@Component
//@ConfigurationProperties(prefix = "person")
public class Person {
    @Value("${person.name}")
    private String name;
    private String sex;
    private Integer age;
    private boolean isMerried;
    private List<String> books;
    private String [] pets;
    private List<Friend> friends;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

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

    public boolean isMerried() {
        return isMerried;
    }

    public void setMerried(boolean merried) {
        isMerried = merried;
    }

    public List<String> getBooks() {
        return books;
    }

    public void setBooks(List<String> books) {
        this.books = books;
    }

    public String[] getPets() {
        return pets;
    }

    public void setPets(String[] pets) {
        this.pets = pets;
    }

    public List<Friend> getFriends() {
        return friends;
    }

    public void setFriends(List<Friend> friends) {
        this.friends = friends;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", isMerried=" + isMerried +
                ", books=" + books +
                ", pets=" + Arrays.toString(pets) +
                ", friends=" + friends +
                '}';
    }
}


src/test/java/com/study/springboot02/Springboot02ApplicationTests.java

@SpringBootTest
class Springboot02ApplicationTests {
    @Autowired
    private Person person;

    @Test
    void contextLoads() {
        System.out.println(person);
    }

}

八、自定义properties的读取

1、自定义一个properties文件,并且让key和之前的properties不一样;
2、使用propertysource注解 来标明你要读取的properties文件名;
3、跟之前一样的读取方式,注意修改prefix的值;

src/main/resources/person2.properties

person.name=lisi2
person.sex=famale2
person.age=12
person.isMerried=false
person.books[0]=三国演义2

src/main/java/com/study/springboot02/bean/Person.java


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

import java.util.Arrays;
import java.util.List;

@Component

@ConfigurationProperties(prefix = "person2")
public class Person {
    private String name;
    private String sex;
    private Integer age;
    private boolean isMerried;
    private List<String> books;
    private String [] pets;
    private List<Friend> friends;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

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

    public boolean isMerried() {
        return isMerried;
    }

    public void setMerried(boolean merried) {
        isMerried = merried;
    }

    public List<String> getBooks() {
        return books;
    }

    public void setBooks(List<String> books) {
        this.books = books;
    }

    public String[] getPets() {
        return pets;
    }

    public void setPets(String[] pets) {
        this.pets = pets;
    }

    public List<Friend> getFriends() {
        return friends;
    }

    public void setFriends(List<Friend> friends) {
        this.friends = friends;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", isMerried=" + isMerried +
                ", books=" + books +
                ", pets=" + Arrays.toString(pets) +
                ", friends=" + friends +
                '}';
    }
}


src/test/java/com/study/springboot02/Springboot02ApplicationTests.java

@SpringBootTest
class Springboot02ApplicationTests {
    @Autowired
    private Person person;

    @Test
    void contextLoads() {
        System.out.println(person);
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/55123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据中台系列2:rabbitMQ 安装使用之 window 篇

RabbitMQ 是一个开源的消息队列系统&#xff0c;是高级消息队列协议&#xff08;AMQP&#xff09;的标准实现&#xff0c;用 erlang 语言开发。 因此安装 RabbitMQ 之前要先安装好 erlang。 1、安装 erlang 到 这里 下载本机能运行的最新版 erlang 安装包。如果本机没有装过 …

eclipse版本与jdk版本对应关系

官网&#xff1a;Eclipse/Installation - Eclipsepedia eclipse历史版本&#xff08;2007-&#xff09;&#xff1a;Older Versions Of Eclipse - Eclipsepedia Eclipse Packaging Project (EPP) Releases | Eclipse Packages

行云管家荣获CFS第十二届财经峰会 “2023产品科技创新奖”

7月26日至27日&#xff0c;CFS第十二届财经峰会暨2023可持续商业大会在京盛大召开。峰会主题为“激活高质量发展澎湃活力”&#xff0c;超1000位政商领袖、专家学者、企业及媒体代表出席了本次盛会&#xff0c;共同分享新技术新产品新趋势、研判全球新挑战与新变局下企业的机遇…

K线与形态基础知识

一、单根K线的涨跌形态 实体&#xff1a;代表当日的股价涨跌幅大小&#xff0c;即波动大小&#xff0c;实体大&#xff0c;波动大。上影线&#xff1a;从实体向上延伸的即为上影线&#xff0c;表示股价上涨的轨迹&#xff0c;也是多方拉升意图的最佳表现&#xff0c;但是最终实…

uniapp 实现滑动元素并下方有滚动条显示

用uniapp实现下图的样式 代码如下&#xff1a; <template><view class"content"><view class"data-box" ref"dataBox" touchend"handleEnd"><view class"data-list"><view class"data-ite…

Databend 开源周报第 104 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 从 Kafka 载入数…

数实融合 产业共创 | 竹云受邀出席“2023湾区数字科技50人论坛”

7月29日&#xff0c;“2023湾区数字科技50人论坛”在深圳湾科技生态园圆满举行&#xff01;本届论坛由深圳市科学技术协会指导&#xff0c;中国鲲鹏产业源头创新中心、湾盟产业创新服务中心主办&#xff0c;深圳市金融攻关基地、广东赛迪工业和信息化研究院、香港科技大学深港协…

VMware Linux 可视化增加磁盘

1、VMware 增加磁盘 2、disks挂载磁盘 此处我挂载的是20G磁盘&#xff0c;截图只是用5G的做过程演示例子。 3、验证挂载磁盘

Qt 编译 Android 项目,输出乱码

乱码如下&#xff1a; :-1: error: 娉 C:\Qt\6.5.0\android_arm64_v8a\src\android\java\src\org\qtproject\qt\android\bindings\QtActivity.java浣跨敤鎴栬鐩栦簡宸茶繃鏃剁殑 API銆 娉 鏈夊叧璇︾粏淇℃伅, 璇蜂娇鐢-Xlint:deprecation 閲嶆柊缂栬瘧銆 正确的应该是&#…

【mysql】Win10安装配置MySQL8.0简要

下载 MySQL官网下载安装包 安装

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

机器学习深度学习——模型选择、欠拟合和过拟合

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——多层感知机的简洁实现 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有…

从哪些方面学HTML技术? - 易智编译EaseEditing

学习HTML技术是前端开发的基础&#xff0c;它用于定义网页的结构和内容。以下是学习HTML技术时可以关注的方面&#xff1a; HTML基本语法&#xff1a; 了解HTML标签的基本语法和用法&#xff0c;学习如何创建HTML文档和元素。 常用HTML标签&#xff1a; 学习常用的HTML标签&…

快速转换PDF文件: Python和PyMuPDF教程

解决问题 有时候将文档上传Claude2做分析&#xff0c;有大小限制&#xff0c;所以需要切割pdf文档为几个小点的文档&#xff0c;故才有了本文章。 如何用Python和PyMuPDF制作你想要大小的PDF&#xff1f; PDF是一种广泛使用的文件格式&#xff0c;可以在任何设备上查看和打印…

[threejs]相机与坐标

搞清相机和坐标的关系在threejs初期很重要&#xff0c;否则有可能会出现写了代码&#xff0c;运行时一片漆黑的现象&#xff0c;这种情况就有可能是因为你相机没弄对。 先来看一下threejs中的坐标(世界坐标) 坐标轴好理解&#xff0c;大家只需要知道在three中不同颜色代表的轴…

[JavaWeb]SQL介绍-DDL-DML

SQL介绍-DDL-DML 一.SQL简介1.简介2.SQL通用语法3.SQL语言的分类 二.DDL-操作数据库与表1.DDL操作数据库2.DDL操作表①.查询表(Retrieve)②.创建表(Create)③.修改表(Update)④.删除表(Delete) 三.Navicat的安装与使用四.DML-操作表数据1.添加(Insert)2.修改(Update)3.删除(Del…

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中&#xff0c;我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前&#xff0c;我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch&#xff1a;索引备份及恢复”。在今天&#xff0c;我们使用一种 Python 的方法来做进一步的探讨。你可…

冒泡排序算法

冒泡排序 算法说明与代码实现&#xff1a; 简单分析&#xff0c;外循环次数为数据len(arr)-1次&#xff0c;内循环为len(arr)-外循环次数 下面是使用Go语言实现冒泡排序算法的示例&#xff1a; package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr…

使用Jetpack Compose构建时间轴组件的逐步指南

使用Jetpack Compose构建时间轴组件的逐步指南 最近&#xff0c;我们开发一个时间轴组件&#xff0c;显示用户与客户之间的对话。每个对话节点应具有自己的颜色&#xff0c;取决于消息的状态&#xff0c;并且连接消息的线条形成颜色之间的渐变过渡。 我们慷慨地估计了未来的工…

北方多地暴雨引思考:如何降低暴雨负面影响?

受今年第五号台风“杜苏芮”残余环流北上影响&#xff0c;北方多地这两天出现了大范围的强降雨。 7月31日晚上&#xff0c;国家防总办公室、应急管理部加密研判会商&#xff0c;与中国气象局、水利部会商研判&#xff0c;视频连线北京、天津、河北等重点省份&#xff0c;滚动分…