
18-properties工具类
第一种写法
依赖
xml
<!-- Apache Commons Configuration -->
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version> <!-- 最新 1.x 版本 -->
</dependency>
<!-- Apache Commons Lang -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
</dependency>
工具类
java
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class Configs {
private static Configuration configs;
private static String openApiDomain; // 支付宝openapi域名
private static String pid; // 商户partner id
private static String appid; // 商户应用id
static {
Configs.init("zfbinfo.properties");
}
private Configs() {
// No Constructor
}
// 根据文件名读取配置文件,文件后缀名必须为.properties
public synchronized static void init(String filePath) {
if (configs != null) {
return;
}
try {
configs = new PropertiesConfiguration(filePath);
} catch (ConfigurationException e) {
e.printStackTrace();
}
if (configs == null) {
throw new IllegalStateException("can`t find file by path:" + filePath);
}
openApiDomain = configs.getString("open_api_domain");
pid = configs.getString("pid");
appid = configs.getString("appid");
log.info("配置文件名: " + filePath);
}
public static Configuration getConfigs() {
return configs;
}
public static String getOpenApiDomain() {
return openApiDomain;
}
public static String getPid() {
return pid;
}
public static String getAppid() {
return appid;
}
// 测试
public static void main(String[] args) {
String appid = Configs.getAppid();
System.out.println(appid);
}
}
第二种写法
java
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:config/alipay.properties")
@Data
public class AlipayUtil {
@Value("${app_id}")
private String appId;
@Value("${gatewayUrl}")
private String gatewayUrl;
@Value("${merchant_private_key}")
private String merchantPrivateKey;
@Value("${charset}")
private String charset;
@Value("${alipay_public_key}")
private String alipayPublicKey;
@Value("${sign_type}")
private String signType;
@Value("${return_url}")
private String returnUrl;
@Value("${notify_url}")
private String notifyUrl;
}