原创

springboot入门配置文件

1简介

SpringBoot使用一个默认全局的配置文件,配置文件名是固定的,位于项目的src/main/resource目录中;
1.application.properties
2.application.yml(或者是yaml)

  

2application.properties配置文件

.properties配置文件的特点是用等号定义配置项,等号左边为配置项的key,可以使用.连接,等号右边为配置项的值。

我们可以在配置文件里配置项目启动的端口,上下文,项目名称等,如下代码:

server.port=8081
server.servlet.context-path=/test
server.application.name=sptingboot-test

server.port=8081,项目以8081端口启动项目

server.servlet.context-path=/test,项目的上下文为:test,url访问路径上会加上/test路径

server.application.name=sptingboot-test 定义项目的名称

  

我们还以上一篇讲解的springboot入门的demo添加上面的配置,然后运行,我们会发现在项目启动的控制台会输出项目启动的端口号及上线文,如下图所示


我们在浏览器里输入:http://localhost:8081/test/home,即可访问

2.1自定义属性

我们也可以在application.properties里配置自定义属性,如下所示

web.url=http://javain.net
myname=javain

我们自定义了两个配置项,等号前边的是自定义的key,符合命名规则即可,等号后面是该key对应的value,在程序里可以通过注解@value("{}")获取到对应的值,花括号里填入对应的key值,如下所示:

@Value("${web.url}")
private String webUrl;

@Value("${myname}")
private String myName;

完整个FirstController代码如下:

package com.mytest1.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class FirstController {

@Value("${web.url}")
private String webUrl;

@Value("${myname}")
private String myName;

@RequestMapping("/home")
public String home(){
return "hello word";
}

@RequestMapping("/attribute")
public String attribute(){
return webUrl + "@" + myName;
}
}

启动项目,并访问:http://localhost:8081/test/attribute,看到如下返回,说明已经获取到自定义的属性了

2.2多环境配置文件

在我们正常的开发中会有多个环境,测试环境,开发环境,生产环境,联调环境等等,每个环境下的配置不尽相同(数据库连接字符串、调用的外部api接口地址等),那就需要我们配置多环境的配置文件,我们在application.properties的同一级目录里(src/mian/resource),创建以下文件:

  • application-dev.properties 标识开发环境的配置文件
  • application-test.properties 标识测试环境的配置文件 
  • application-prod.properties 标识生产环境的配置文件 

  

其中 application- 后边的为自己定义的属性,其他的保持不变,我们在application.properties里通过以下配置项来加载具体环境的配置文件

spring.profiles.active=dev

spring.profiles.active配置项的值说明我们项目启动时使用的是哪个环境的配置,dev就是我们在application- 后面自定义的值,spring.profiles.active=dev说明我们加载的是application-dev.properties里的配置内容,依次类推。

测试多环境配置

1、在application-dev.properties配置文件中添加如下属性:

curevn=dev

2、在application-test.properties 配置文件中添加如下属性:

curevn=test

3、在application-prod.properties 配置文件中添加如下属性:

curevn=prod

4、在application.properties 配置文件中添加如下属性:

spring.profiles.active=dev

该配置说明加载的是dev环境文件

5、修改FirstController代码如下,添加获取当前环境的代码

package com.mytest1.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class FirstController {

@Value("${web.url}")
private String webUrl;

@Value("${myname}")
private String myName;

/**
* 当前环境
*/
@Value("${curevn}")
private String curEvn;

@RequestMapping("/home")
public String home(){
return "hello word";
}

@RequestMapping("/attribute")
public String attribute(){
return webUrl + "@" + myName;
}

@RequestMapping("/curevn")
public String curevn(){
return curEvn;
}
}

运行程序,访问:http://localhost:8081/test/curevn,返回的数据如下,说明获取到的是application-dev.properties里的配置内容

如果把application.properties中的属性spring.profiles.active值改为test,页面返回的数据就是test,可以自己做个试验

3 application.yml配置文件

该类型的配置文件是以 英文冒号 : 链接属性和值,并且冒号和属性的值之间必须要有一个英文空格, propertites定义的属性中有.的,在yml文件中以树形结构展示,如下所示:

server:
application:
name: sptingboot-test
port: 8081
servlet:
context-path: /test
spring:
profiles:
active: dev
web:
url: http://javain.net
myname: javain

后端程序用@value获取属性的值的时候,需要用.连接属性的key值,比如:

@Value("${web.url}")

获取到yml文件里配置的属性web : url的值。我们可以通过https://www.toyaml.com/index.html工具进行properties和yml文件的转换

源码下载地址:链接: https://pan.baidu.com/s/1prMhN2BwQ-1r_WnuZ-a4ZA 提取码: wrwk 

有任何疑问,欢迎添加博主微信,QQ与博主沟通


正文到此结束