【杂记】配置文件

news/2024/10/2 12:27:19

properties配置文件

application.properties是springboot项目默认的配置文件,所以springboot程序在启动时会默认读取application.properties配置文件,而我们可以使用一个现成的注解:@Value,获取配置文件中的数据。

@Value 注解通常用于外部配置的属性注入,具体用法为: @Value("${配置文件中的key}")

例如:

#自定义的阿里云OSS配置信息
aliyun.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
aliyun.oss.accessKeyId=LTAI4GCH1vX6DKqJWxd6nEuW
aliyun.oss.accessKeySecret=yBshYweHOpqDuhCArrVHwIiBKpyqSL
aliyun.oss.bucketName=web-tlias
@Component
public class AliOSSUtils {@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.accessKeySecret}")private String accessKeySecret;@Value("${aliyun.oss.bucketName}")private String bucketName;//省略其他代码...}  

yml配置文件

yml配置文件的基本语法:

  • 大小写敏感
  • 数值前边必须有空格,作为分隔符
  • 使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转换为空格)
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略

对象/Map集合

user:name: zhangsanage: 18password: 123456

数组/List/Set集合

hobby: - java- game- sport

注解@ConfigurationProperties

在Spring中给我们提供了一种简化方式,可以直接将配置文件中配置项的值自动的注入到对象的属性中。
Spring提供的简化方式套路:

  1. 需要创建一个实现类,且实体类中的属性名和配置文件当中key的名字必须要一致

    比如:配置文件当中叫endpoints,实体类当中的属性也得叫endpoints,另外实体类当中的属性还需要提供 getter / setter方法

  2. 需要将实体类交给Spring的IOC容器管理,成为IOC容器当中的bean对象

  3. 在实体类上添加@ConfigurationProperties注解,并通过perfect属性来指定配置参数项的前缀

实体类:AliOSSProperties

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*阿里云OSS相关配置*/
@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSProperties {//区域private String endpoint;//身份IDprivate String accessKeyId ;//身份密钥private String accessKeySecret ;//存储空间private String bucketName;
}

在我们添加上注解后,会发现idea窗口上面出现一个红色警告:

这个警告提示是告知我们还需要引入一个依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

当我们在pom.xml文件当中配置了这项依赖之后,我们重新启动服务,大家就会看到在properties或者是yml配置文件当中,就会提示阿里云 OSS 相关的配置项。所以这项依赖它的作用就是会自动的识别被@Configuration Properties注解标识的bean对象。

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

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

相关文章

wnmp安装配置记录(重装系统重置后)

一、windows10 二、nginx安装与配置 nginx news开源网站下载稳定版本1.nginx下载完成解压,即安装成功 2.进入安装目录,双击nginx.exe,启动nginx服务器 3.浏览器中打开http://localhost,出现nginx欢迎页面即为成功 三、安装配置php 1、进入PHP官网下载最新稳定版本,windows…

MongoDB 学习

MongoDB 简介MongoDB是一个文档数据库,但文档并不是一般理解的pdf, word文档,而是JSON对象,因为文档来自于“JSON Document”(JSON文档),所以MongoDB是存JSON对象的数据库,比如{"greeting”: "hello world"}。说起文档,想到的应该是JSON对象,所以文档中的…

maven学习笔记(一)

maven学习笔记(一) 1. 什么是Maven 1.1. Maven的概念 Maven 是自动化构建工具。 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。Maven 这个单词的本意是:专家,内行。 Maven 是目前最流行的自动化构建工具,对于生产环…

选择合适的图像采集卡的四个标准

即使在今天,图像采集卡仍然能够让应用程序为相机实现最高速度和分辨率,图像采集卡是将相机连接到PC的最快方式,并且能够在没有传输延迟的情况下实现非常高的分辨率。例如,在基于10GigE的应用程序中通常使用的具有直接连接的高带宽解决方案速度要慢得多,而且完全依赖于网卡…

【JavaWeb】文件上传

前端代码 <form action="/upload" method="post" enctype="multipart/form-data">姓名: <input type="text" name="username"><br>年龄: <input type="text" name="age"><b…

部署、安装和测试minio

部署MinIO 在server01部署MinIO,安装方式采用rpm离线安装,具体步骤可参考官方文档。获取MinIO安装包下载地址如下:https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm,通过以下命令可直接将安装包下载至服务器 wget https:/…

SpringBoot的Security和OAuth2的使用

创建项目 先创建一个spring项目。 然后编写pom文件如下,引入spring-boot-starter-security,我这里使用的spring boot是2.4.2,这里使用使用spring-boot-dependencies,在这里就能找到对应的security的包。 <?xml version="1.0" encoding="UTF-8"?&g…

Spring容器系列-启动原理(下)

Spring容器系列-启动原理(下)从上一篇文章《Spring容器系列-启动原理(上)》中,介绍了Spring容器初始化的核心方法refresh()的整体情况。这篇文章来详细展开介绍。其中比较重要的方法会标记上***一、refresh中的12个方法1. prepareRefresh主要作用:记录下容器启动时间,标…