关于项目中如何去读取配置文件中的静态资源,遇到的一些坑,进行解决

首先在讲这个问题前,还是分享一下,现在springboot项目,springcloud项目越来越主流,而这类项目在读配置文件中的资源是非常舒服的。所有的配置都是在一个xxxx.yml文件中存放,只要按照yml的约定写好静态资源,在代码中使用@Value注解就可以轻松获取了。springboot帮我们做了很多事情,导致了回归到一些老项目,在用@Value注解时,反而用的很不顺利了。

我先说说我在没有使用@Value注解时,是怎么去拿配置文件的,这种方式很套路,按照套路来肯定没问题,但是显得很low,不够高大上。分享一下:

首先,自己去定义好一个图中的方法,这里的ResourceBundle类是java自己封装好专门用于读取配置文件的一个类,只要把要读取配置文件的路径写好,就妥了

然后,利用@PostConstruct注解,在Bean注入完以后立即执行该方法,就可以拿到静态资源了。

上面这种方法是没问题的。但是我觉得这样太繁琐了,springboot的@Value注解在spring的项目中一样可以用,那是怎么操作的,也分享一下。

<context:component-scan base-package="com.hikvision.bean"/>

<context:property-placeholder location="classpath:/properties-config/hikvision.properties"/>
首先在xml文件中配置好扫描的包路径,以及要扫描的配置路径

 

@Value("${sensitiveurl}")

private String sensitiveUrl;

然后再对应的地方按如上去操作,启动项目,报错。当时很疑惑,为什么呢。查看报错信息 IllegalArgumentException: Could not resolve placeholder in string value

这个报错是什么意思呢,他说<context:property-placeholder>标签在配置文件中只能出现一次,不能重复使用,解决办法就是在标签中加入一个属性 ignore-unresolvable=”true” 问题就解决了

<context:property-placeholder location="classpath:/properties-config/hikvision.properties" ignore-unresolvable="true"/>

大家以后在配置文件中写这类标签,就都把后面那个属性加上吧,反正在肯定不会有问题,少了有可能就出问题了

转载于:https://my.oschina.net/u/3869202/blog/1821290

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值