gpt4 book ai didi

java - @Value 注解不返回值

转载 作者:行者123 更新时间:2023-11-30 07:17:47 25 4
gpt4 key购买 nike

我有一个 FichierCommunRetriever 类,它使用 Spring@Value 注释。但我正在努力让它发挥作用。

所以在我的 application.properties 中我有:

application.donneeCommuneDossier=C\:\\test
application.destinationDonneeCommuneDossier=C\:\\dev\\repertoireDonneeCommune\\Cobol

我的类(class) FichierCommunRetriever 正在使用具有以下代码的条目:

public class FichierCommunRetriever implements Runnable {

@Value("${application.donneeCommuneDossier}")
private String fichierCommunDossierPath;

@Value("${application.destinationDonneeCommuneDossier}")
private String destinationFichierCommunDossierPath;
}

我们正在使用 ApplicationConfig 类中的以下代码加载 application.properties:

@ImportResource("classpath:/com/folder/folder/folder/folder/folder/applicationContext.xml")

ApplicationConfig 中,我定义了一个 bean,它在一个新线程中使用 FichierCommunRetriever :

Thread threadToExecuteTask = new Thread(new FichierCommunRetriever());
threadToExecuteTask.start();

我想我的问题是,由于 FichierCommunRetriever 在单独的线程中运行,该类无法到达 applicationContext 并且无法提供值。

我想知道注释是否有效,或者我必须更改获取这些值的方式?

最佳答案

在你的 applicationConfig 中,你应该这样定义你的 bean:

@Configuration
public class AppConfig {

@Bean
public FichierCommunRetriever fichierCommunRetriever() {
return new FichierCommunRetriever();
}

}

然后,在 Spring 加载之后,您可以通过应用程序上下文访问您的 bean

FichierCommunRetriever f = applicationContext.getBean(FichierCommunRetriever.class);
Thread threadToExecuteTask = new Thread(f);
threadToExecuteTask.start();

现在您确定您的 bean 位于 Spring 上下文中并且它已被初始化。此外,在您的 Spring XML 中,您必须加载属性(此示例使用上下文命名空间):

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

...

<context:property-placeholder location="classpath:application.properties" />

...

</beans>

关于java - @Value 注解不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com