赞
踩
SpringBoot使用application.properties或者applicaiton.yaml文件作为全局配置文件,文件位置一般在src/main/resource目录下,使用Spring Initializer方式构建或者https://start.spring.io/ 构建Spring Boot项目后会在src/main/resource目录下自动创建一个名称为applicatiion.properties 文件
- src
- ├─main
- │ ├─java
- │ └─resources
- │ application.properties
- └─test
application文件可以实现定义Spring Boot 项目的相关属性,可以是系统属性,命令参数,变量等,applicatiion.properties和application.yamal 文件中可以定义的内容是相同的,只是格式不同, 例如上文提到可以修改server.prot属性将默认端口从8080修改为其他端口
application.properties定义端口,使用“key=value”格式
server.port=9090
application.yaml定义端口,使用 “key: 空格value ”格式
- server:
- port: 9090
读取全局配置有两种方式
application.yaml配置文件中自定义属性
- ##自定义属性用于测试
- project:
- author:
- name: PNZ.BeijingL
- from: StarCraft PNZ TEAM
创建PropertiesController对象使用@Value注入属性信息
- package com.boot.basic.conf;
-
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class PropertiesController {
-
- @Value("${project.author.name}")
- private String author;
- @Value("${project.author.from}")
- private String from;
-
- /**
- *方式 使用@Value注入属性,读取配置文件中的属性逐个注入到对应的属性中,可省略setXX方法
- * @return
- */
- @RequestMapping("/author")
- public String getAuthor() {
- return "getAuthor: Name:" + author + " from:" + from;
- }
-
- }
启动后访问 http://127.0.0.1:8080/author
修改application.yaml配置文件中自定义属性
- ##自定义属性用于测试
- project:
- name: Demo for Spring Boot
- version: 0.0.1
- author:
- name: PNZ.BeijingL
- from: StarCraft PNZ TEAM
创建项目信息类
- package com.boot.basic.conf;
-
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
-
-
- @Component
- @ConfigurationProperties(prefix = "project")
- public class ProjectSettings {
-
- private String name;
- private String version;
-
- //省略getter和setter
-
- @Override
- public String toString() {
- return "ProjectSettings{" +
- "name='" + name + '\'' +
- ", version='" + version + '\'' +
- '}';
- }
- }
修改PropertiesController对象注入ProjectSettings 对象bean
-
- @RestController
- public class PropertiesController {
-
- @Value("${project.author.name}")
- private String author;
- @Value("${project.author.from}")
- private String from;
-
- @Autowired
- private ProjectSettings settings;
-
- /**
- *方式 使用@Value注入属性,读取配置文件中的属性逐个注入到对应的属性中,可省略setXX方法
- * @return
- */
- @RequestMapping("/author")
- public String getAuthor() {
- return "getAuthor: Name:" + author + " from:" + from;
- }
-
- /**
- * 方式 使用@Component + @ConfigurationProperties注入配置文件属性,实现将配置文件中的属性映射到projectSettings类组件中
- * @return
- */
- @RequestMapping("/project")
- public String getProject() {
- return "getProject: "+settings.toString();
- }
-
- }
启动后访问
resource目录下创建自定义文件myapplication.properties
- demo.conf.test.name=zhangsan
- demo.conf.test.level=99
定义配置对象MyProperties
- package com.boot.basic.conf;
-
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.context.properties.EnableConfigurationProperties;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.PropertySource;
-
- @Configuration
- @PropertySource("classpath:myapplication.properties")
- @EnableConfigurationProperties(MyProperties.class)
- @ConfigurationProperties(prefix = "demo.conf.test")
- public class MyProperties {
-
- private String name;
- private int level;
-
- //省略getter和setter
-
- @Override
- public String toString() {
- return "MyProperties{" +
- "name='" + name + '\'' +
- ", level=" + level +
- '}';
- }
- }
修改PropertiesController 对象注入MyProperties
- @RestController
- public class PropertiesController {
-
- //省略
-
- @Autowired
- private MyProperties myProperties;
-
- @RequestMapping("/myconf")
- public String getMyProperties() {
- return myProperties.toString();
- }
- }
访问http://127.0.0.1:8080/myconf
如果属性配置不对时,String为null字符串, int会取默认值0
SpringBoot资源目录下 src/main/resource,可以创建多个环境的配置文件
- ├─main
- │ ├─java
- │ │
- │ └─resources
- │ application-dev.properties //开发环境
- │ application-prod.properties //生产环境
- │ application-test.properties //测试环境
- │ application.properties //全局配置文件
- │ myapplication.properties //自定义配置文件
- │
- └─test
在application.properties文件中 通过spring.profiles.active属性启动使用的环境配置文件,这样就很容易切换开发环境、测试环境的配置, 例如
spring.profiles.active=dev
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。