SpringBoot 如何编写配置文件
作者:憧憬 发布时间:2023-07-14 10:38:24
我们经常在项目开放中需要进行很多配置, 那么这些配置基本上都是动态的, 如果我直接写在代码中, 修改起来很麻烦, 如果该配置在多处进行引用啦, 你估计会杀了写代码的人。
那么我们在使用SpringBoot的时候, 也是需要进行配置文件编写的。在spirngBoot里面, 可以有两种方式声明配置
1、直接编写配置文件 然后从配置文件里面获取
2、编写配置文件 然后编写bean, 通过注解注入到bean里面 获取的时候从bean里面获取
配置文件编写可以有多种, 例如我们常见的有: xml、properties、json、yaml.....
我们这里就使用常见的properties文件来写
编写配置文件,从配置文件里面获取
创建配置文件
使用配置项
注解说明
@PropertySource({"classpath:config/web.properties"}) //指定配置文件
@Value("${site.name}") // 获取配置项 value
效果
编写配置文件, 从bean里面获取
编写bean
, WebSetting.java
package com.example.demo.domain;
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;
@Component
@PropertySource(value = "classpath:config/web.properties", encoding = "utf-8")
@ConfigurationProperties(prefix = "site") // 这个可以指定前缀 只要成员属性能对上就行 也可以不指定 使用@Value来获取
public class WebSetting {
@Value("${site.name}")
private String siteName;
@Value("${site.desc}")
private String siteDesc;
@Value("${site.domain}")
private String siteDomain;
// 对上了可以不用@Value
private String test;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
public String getSiteName() {
return siteName;
}
public void setSiteName(String siteName) {
this.siteName = siteName;
}
public String getSiteDesc() {
return siteDesc;
}
public void setSiteDesc(String siteDesc) {
this.siteDesc = siteDesc;
}
public String getSiteDomain() {
return siteDomain;
}
public void setSiteDomain(String siteDomain) {
this.siteDomain = siteDomain;
}
}
config/web.properties
site.name=憧憬
site.domain=aoppp.com
site.desc=这是一个技术分享的博客!
site.test=test
获取配置 效果
需要注意点
1、配置文件注入失败,出现Could not resolve placeholder
解决:根据springboot启动流程,会有自动扫描包没有扫描到相关注解,
默认Spring框架实现会从声明@ComponentScan所在的类的package进行扫描,来自动注入,因此启动类最好放在根路径下面,或者指定扫描包范围,spring-boot扫描启动类对应的目录和子目录
2、注入bean的方式,属性名称和配置文件里面的key一一对应,就用加@Value 这个注解,如果不一样,就要加@value("${XXX}")
来源:https://aoppp.com/springboot-pei-zhi-wen-jian-bian-xie-ji/


猜你喜欢
- springboot静态资源加载顺序优先级看springboot源码里面springboot静态资源加载规则我们经常会使用springboo
- 本文实例为大家分享了Android联系人字母排序的具体代码,供大家参考,具体内容如下实现思路:首先说下布局,整个是一个相对布局,最下面是一个
- 1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android
- SpringBoot中的过滤器 * 操作与springmvc中的几乎一样所以这里也不过多介绍了,下面举两
- 本文实例为大家分享了Drawerlayout侧滑菜单的具体代码,供大家参考,具体内容如下1、Drawerlayout的xml布局<?x
- 1.创建字符串的方法1.1构造方式一、直接构造String str = "fly";方式二 、调用构造方法进行构造对象S
- 整合Spring Data JPAJPA (Java Persistence API)和 Spring Data 是两个范畴的概念。Hibe
- C#是一门面向对象的语言,具有面向对象的基本特征,抽象、封装、继承、多态等性质。学习C#除了一些基本的语法,还得学习一些新的特性,比如说:泛
- /** * 朴素字符串算法通过两层循环来寻找子串, * 好像是一个包含模式的“模板”沿待查文本滑动。 * 算法的思想是:从主串S的第p
- 今天一起学习下如何在Spring中进行异步编程。我们都知道,web服务器处理请求 request 的线程是从线程池中获取的,这也不难解释,因
- 杂语:看了很多程序猿都有写博客的习惯,看来我也得练练,不管写的好不好了,学到点什么体会就写写吧。内容解说:这几天开始学游戏地图制作,今天小小
- EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来
- 今天,简单讲讲android里如何获取一个视频文件的第一帧作为缩略图显示在界面上。之前,我说个最近需要从服务器下载视频文件,但是下载后肯定需
- 在Word中可将文件通过OLE对象嵌入的方式插入到文档,包括Word、excel、PDF、PPT、图片、宏文件、文件包等在内的多种文件类型。
- 学习java的人都知道spring,springMVC,mybatis等框架,像structs2这样的框架是基于servlet以外实现的,而
- 实例如下:public class ConfigOperator { #region 从配置文件获取V
- 本文实例讲述了Java常用内置注解。分享给大家供大家参考,具体如下:一 通过@SuppressWarnings关闭警告信息1 代码publi
- 作用mybatis-plus接口mapper方法中的注解(如@Select)或者xml(如)传入的参数是通过#{param}或者${para
- Java * 分析及理解代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。 * 使用java * 机制以巧妙的方式实现了
- 值类型和引用类型作为两个非常基础而且很重要的概念,一般我们都是在最开始的时候学的,你听到的可能是这样的:值类型传递的是具体的值(副本),引用