包装实体类
一、aplication.yml
custom:
whiteUrl:
- /1/1
- /2/2
二、添加配置文件 - CustomConfig
@Configuration
@ConfigurationProperties(prefix = "custom")
public class CustomConfig {
private List<String> whiteUrl;
public List<String> getWhiteUrl() {
return whiteUrl;
}
public void setWhiteUrl(List<String> whiteUrl) {
this.whiteUrl = whiteUrl;
}
}
三、再需要引用的类中注入
@Component
public class SendAspect {
@Resource
private CustomConfig customConfig;
...
customConfig.getWhiteUrl()
...
}
自定义实体类
一、aplication.yml
sw:
pool-size: 10
kind-of-algorithm: SM3
hm-infos:
- ip: 127.0.0.1
port: 8008
passwd: 123123
connect-timeout: 300
service-timeout: 300
heartbeat: 60
index: 1
loginProtocol: 0x02000000
二、配置类和自定义实体
@Data
@Configuration
@ConfigurationProperties(prefix = "sw")
public class SwConfig {
private List<CustomHM> hsInfos;
private Integer poolSize;
private String kindOfAlgorithm;
@Bean
public MessageDigest messageDigest() throws NoSuchAlgorithmException {
List<HSInfo> hsmInfoList = hsInfos.stream().map(h -> {
HSInfo hsInfo = new HSInfo(h.getIp(), h.getPort(), h.getPasswd(), h.getConnectTimeout(), h.getServiceTimeout());
hsInfo.setIndex(h.getIndex());
hsInfo.setHeartbeat(h.getHeartbeat());
hsInfo.setLoginProtocol(h.getLoginProtocol());
return hsInfo;
}).collect(Collectors.toList());
SwxaProvider swxaProvider = new SwxaProvider(hsmInfoList, poolSize);
if (Security.getProvider(SwxaProvider.PROVIDER_NAME) == null) {
Security.addProvider(swxaProvider);
}
return MessageDigest.getInstance(kindOfAlgorithm, swxaProvider);
}
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "sw.hm-infos")
public static class CustomHM {
private Integer index;
private String ip;
private Integer port;
private String passwd;
private Integer connectTimeout;
private Integer serviceTimeout;
private Integer heartbeat;
private Integer loginProtocol;
}
}