一、简单需求
想要自己写一个简单的文件上传工具类。计划是通过配置文件配置相应的文件上传位置。通过@Value取到值,然后使用。
二、出现问题
因为工具类中一般都是静态方法。所以文件位置属性就被顺理成章的定义为了静态属性。(坑1)写好之后,调用报错:属性为空,没有取到值。然后发现问题,将static
修饰符去掉,作相应调整,调用方法时使用对象调用。(坑2)报错依旧。
三、问题解决
1、不能使用static
或final
修饰注入值的字段
2、类没有被注册为组件(@Component)
3、类被new了实例,而不是使用自动注入(@Autowired)
注意了以上三点之后,问题顺利的解决了。由于@Value不能注入静态属性,所以最后还是使用了其他解决方案完成了需求。
最终解决方案