背景说明
项目部署到不通服务器时,对应的配置文件可能不相同,比如:读入节目文件的访问地址等。故需要将项目某些配置文件与原有项目解耦,使得部署项目更加灵活。
maven依赖
<!-- configuration -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置文件内容
# [server]
device.base_url=v1/api/
device.device_set_attribute=/setDeviceAttribute
device.device_get_attribute=/getDeviceAttribute
device.device_get_device_list_type=/getDeviceListByType
device.device_get_device_info=/getDevice
device.device_add_invoke=/insertInvoke
device.device_count_attribute_data=/getDeviceAttribute/list
device.device_get_last_invoke=/getLastDeviceInvoke
配置文件读取类
注意事项
config.path是配置在application.properties的配置文件绝对路劲
package com.dm.core.config;
import lombok.Data;
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
@EnableConfigurationProperties(SystemDeviceApi.class)
@ConfigurationProperties(prefix = SystemDeviceApi.SYSTEM_BASE_CONFIG_PREFIX,ignoreInvalidFields = true)
// 第一种配置方案,配置文件存放在配置文件夹resources目录下,config是配置文件夹下面的子目录
@PropertySource(value = {"classpath:config/SystemDeviceApi.properties"},
// 第二中配置方案,${config.path}为配置文件绝对路径,可以使用项目以外目录
//@PropertySource(value = {"file:${config.path}SystemDeviceApi.properties"},
ignoreResourceNotFound = false, encoding = "UTF-8", name = "SystemDeviceApi.properties")
@Data
public class SystemDeviceApi {
public static final String SYSTEM_BASE_CONFIG_PREFIX = "device";
private String baseUrl;
private String deviceSetAttribute;
private String deviceGetAttribute;
/**
* 分页设备列表【类型】
*/
private String deviceGetDeviceListType;
private String deviceGetDeviceInfo;
/**
* 添加设备方法
*/
private String deviceAddInvoke;
private String deviceCountAttributeData;
/**
* 查询设备方法调用详情
*/
private String deviceGetLastInvoke;
}
- application.properties配置文件内容
config.path=F:/properties/