使用若依框架时,需要在自己业务模块m2m中配置一些属性,读取时出现一些问题,记录一下,方便下次查找:
remote.yml
内容
geoserver: file_final_path: /srv/sentinel2/ndvi_final # 栅格或矢量文件最终的存储位置 file_path: /srv/sentinel2/ndvi # 栅格或矢量文件路径 out_url: http://102.2.202.196:30510/geoserver # geoserver的外网访问地址 pwd: geoserver url: http://localhost:7006/geoserver user_name: admin
方法一 主模块admin下新建配置文件
- 在admin模块下新建
application-remote.yml
- 在application.yml里引入remote
spring: profiles: active: dev,remote
- 在自己业务模块m2m里正常使用
@Value("${geoserver.user_name}") public String username;
方法二 在自己业务模块m2m下新建配置文件
- 新建
remote.yml
直接使用
@Value("${geoserver.user_name}")
报错
- 需要在类上加入
@ConfigurationProperties(prefix = "geoserver") // 前缀 @PropertySource(value = {"classpath:remote.yml"}) // 指定配置文件
方法一 不需要加@ConfigurationProperties和@PropertySource
- 使用
- 注解获取
@Value("${user_name}") public String username;
- 手动获取
新建获取yaml属性工具类获取属性
public static String username; static { username= xxxUtil.getYml("remote.yml", "geoserver.user_name"); }
/** * 获取Yml文件配置属性 */ public static String getYml(String yml, Object key) { Resource resource = new ClassPathResource(yml); Properties properties; try { YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean(); yamlFactory.setResources(resource); properties = yamlFactory.getObject(); } catch (Exception e) { e.printStackTrace(); return null; } return (String) properties.get(key); }