java – 如何使用@Value将属性值注入静态字段
发布时间:2020-12-15 05:12:59 所属栏目:Java 来源:网络整理
导读:我有一个属性文件config.properties,它使用 spring属性占位符配置.这是我在spring配置文件中配置的方式: context:property-placeholder location="classpath:properties/config.properties"/ 现在我需要使用@Value注释将其值设置为静态字段. @Value("${outp
我有一个属性文件config.properties,它使用
spring属性占位符配置.这是我在spring配置文件中配置的方式:
<context:property-placeholder location="classpath:properties/config.properties"/> 现在我需要使用@Value注释将其值设置为静态字段. @Value("${outputfilepath}") private static String outputPath; 我怎样才能做到这一点? 解决方法
唯一的方法是使用setter来获取此值
@Value("${value}") public void setOutputPath(String outputPath) { AClass.outputPath = outputPath; } 但是你应该避免这样做.弹簧不适用于静态注射.因此,您应该使用另一种方法在应用程序的开头设置此字段,例如构造函数.无论如何@Value注释使用spring PropertyPlaceholder,它在静态字段初始化后仍然被解析.因此,这种结构不会有任何好处 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |