我已经坚持了几个小时这个问题。希望有人可以救我。 这是我的配置:
<context:annotation-config />
<context:component-scan base-package="com.emory.athena" />
<bean id="appProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<array>
<value>classpath:Athena.properties</value>
</array>
</property>
</bean>
这是我的用法:
@Service
public class ExcelDownloadService {
@Value("${chromeDriverLocation}")
private String driverLocation;
这是属性文件:
chromeDriverLocation = my_value
我将属性文件放入IntelliJ中标有资源类型的资源文件夹中,这可以在XML配置中找到(IDE显示此文件,并且文件在构建后在类折叠中)。同时初始化这个bean时没有错误。 但我无法在我的var中读取正确的值,它始终为NULL。 任何人都可以告诉我这个配置有什么问题,我该如何解决这个问题? 非常感谢!
添加项目结构截图: structure
更新: 似乎这个问题是由inproperate注入命令引起的。 我在构造函数中读取了这个注入的值,如下所示:
public ExcelDownloadService() {
System.setProperty("webdriver.chrome.driver", driverLocation);
}
如果我将此var读取移动到其他方法,则可以正确读取所有配置值。 现在问题是,当@Value真的将值注入我的val?