Spring Boot(二)项目属性配置
写在前面:本次讲解都是在MAC OS环境下进行,并且是接着上一章(Spring Boot第一个项目)进行的
目录
- @V aule
- @aaa@qq.com
- 多环境配置
本次讲解的功能是:通过对配置文件application.yml添加属性,然后可以在HelloController文件进行引用。
一、@Vaule
1、先看配置文件application.yml如何添加属性
在yml文件,要添加新的属性,换行后,一定不能在前面加空格,否则会归为上一个属性集。在图1里,我添加了cupSize这个属性,它是自己定义的一个属性,完整定义:cupSize: B
2、引用
下一步是要在HelloController.java里引用,先打开文件,然后使用@Vaule进行引用,见图2。
第11、12行就是@Value的语法
@Value("${cupSize}")
private String cupSize;
第16行,就是将cupSize这个属性值打印出来,运行得到图3。
3、多重引用,和配置内引用属性
我们在进行配置的时候,一般要配置很多属性,也可能要在配置内引用配置好的属性,所以我们先来看下配置文件。
见第5行,content: "cupSize: ${cupSize}, age: ${age}"
这句分别引用了cupSize和age这两个属性,${" "}大括号内则是属性名,在外层的" "包含的是字符串。
下面再看HelloController.java如何引用:
也就是多次输入@Value命令进行操作,如果属性再多这种方式就会显得繁琐,于是下面将介绍另一种更加简洁的方法。
二、@aaa@qq.com
1、准备
首先这种注释在1.4版本以上的spring boot不能直接使用,要在pom.xml内加上一段配置语句
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-configuration-processor </artifactId>
<optional> true </optional>
</dependency>
配置完成如图6
下面正式开始介绍方法
2、新建GirlProperties.java文件
在新建之前,我们先对配置文件application.yml进行修改,在给所有属性加上一个头文件girl,如图7
接着在com.imooc.girl文件夹里右键新建JAVA CLASS文件,输入语句如图8。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {
private String cupSize;
private Integer age;
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize){
this.cupSize = cupSize;
}
}
可以看到在@ConfigurationProperties后面有一个(prefix="girl"),这里的prefix,就是在配置文件里寻找头文件为girl的属性。
然后只要使用get和set方法后就配置完成了,接下来就是引用
可以从图9看出,引用部分的代码变得很简洁明了,所以是很推荐这种配置方法的。
三、多环境配置
在做项目的时候,我们会有不同的环境如:开发环境、生产环境。在不同的环境,可能属性的值会改变,那么你就需要去修改配置,但我们不希望经常修改配置,所以介绍如下方法:
给配置文件application.yml复制多两份:application-dve.yml和application-prod.yml,然后将原application内的代码修改,整个过程如下图
然后我们通过在文件application.yml里修改active的值来选择用哪个配置文件进行启动项目,见下图13和14
下图13,active: dev,就是用application-dev.yml文件,并点击右上角的启动按钮。
下图14,active: prod,使用application-prod.yml这个文件,并点击右上角启动按钮。
然后两个使用不同配置文件的项目,在不同端口同时启用了。
推荐阅读
-
Spring Boot2 系列教程 (二) | 第一个 SpringBoot 工程详解
-
Spring Boot入门(一):搭建Spring Boot项目
-
Spring Boot使用yml格式进行配置的方法
-
Spring Boot2(二):使用Spring Boot2集成Mybatis缓存机制
-
IDEA开发spring boot应用时 application.yml 或 application.properties 自定义属性提示
-
15 个优秀开源的 Spring Boot 学习项目
-
Spring引入外部属性文件配置数据库连接的步骤详解
-
Spring Boot项目添加外部Jar包以及配置多数据源的完整步骤
-
Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
-
浅谈Spring Boot 属性配置和自定义属性配置