读取配置文件参数转成对象,map集合。list集合

1.   配置文件参数转成对象

        配置文件:properties形式

soul.server.host=192.168.80.96
soul.server.port=9999

       添加一个配置类:

//方式一 使用@value 注意要使用 ${}包裹
@Configuration
@Data
public class SoulConfig {
    @Value("${soul.server.host}")
    String host;
    @Value("${soul.server.port}")
    String port;
}

//方式二使用注解@configurationProperties 
@configurationProperties("soul.server")
@Configuration
@Data
public class SoulConfig {
    String host;
    String port;
}

2.配置文件转map集合

soul.auth.map.2.appKey=99999999999999999999999999999
soul.auth.map.2.appSecret=888888888888888888888888
soul.auth.map.3.appKey=123123123123123
soul.auth.map.3.appSecret=132123123123123

#list 第一种方式
soul.auth.list[0]=apple0
soul.auth.list[1]=apple1
soul.auth.list[2]=apple2
#list 第二种方式
soul.auth.list=apple0,apple1,apple2

添加一个配置类:

@Configuration
@ConfigurationProperties(prefix = "soul.auth")
@Data
public class SoulAppConfig {
   //map集合    // 这里的属性map对应配置文件中的map ,放在yml文件其实更加一目了然 , map就是一个Map<Integer, AppKeyAndAppSecretEntity>的一个对象 Map<Integer, AppKeyAndAppSecretEntity> map;
//list集合
     List<String> list;
//这里是再外部通过一个叫sysId的参数来获取map集合中对应键的对象(AppKeyAndAppSecretEntity)值,将配置文件中的 2和3转成集合中的key 值对应就是对象AppKeyAndAppSecretEntity
   
 public AppKeyAndAppSecretEntity getAppKeyAndAppSecretEntity(Integer sysId){
        return map.get(sysId);
    }

}


//贴一下AppKeyAndAppSecretEntity对象 
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppKeyAndAppSecretEntity {
    String appKey;
    String appSecret;
}

测试输出结果

@Autowired
    SoulAppConfig soulAppConfig;
 @Test
    public  void http() {
Map<Integer, AppKeyAndAppSecretEntity> map = soulAppConfig.getMap();

}

读取配置文件参数转成对象,map集合。list集合

 

 

上一篇:2021-11-16


下一篇:已拦截跨域请求:同源策略禁止读取位于接口的远程资源:原因:CORS缺少Access-Contorl-Allow-Origin