spring - 我无法以任何方式从 Spring Boot 中的 application.properties 获取值(value)

标签 spring multithreading spring-boot threadpool application.properties

我尝试过使用方法。

@Value("${app.host})
@AutoWired
Environment environment

我可以从其他文件中的application.properties中获取值,但是当我尝试从已实现可调用接口(interface)的线程任务中获取它时,我' m 获取值为 null。

这是我的application.properties

app.host = "xyz.com"

服务

ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<FTPClient> result = executorService.submit(new FtpConnector());

FtpConnector.java


import java.util.concurrent.Callable;

@Service
@PropertySource("classpath:application.properties")
public class FtpConnector implements Callable<FTPClient>{

    FTPClient ftpClient = new FTPClient();
    Logger logger = LoggerFactory.getLogger(FtpConnector.class);

    @Autowired
    FtpClient client;

    @Value("${app.host}")
    private String host;

    @Override
    public FTPClient call() throws Exception {
        logger.info("Host from connecter {}",host);
}

输出

2022-03-02 20:44:03.831  INFO 15135 --- [ool-13-thread-1] t.a.tech.ftpnew.service.FtpConnector     : Host from connecter null

有谁有任何想法或解决方案来获取线程中 application.properties 的值。 ?

最佳答案

当您使用new FtpConnector()时,它不会执行任何依赖项注入(inject),因此FtpClienthost不会被注入(inject)。执行以下操作;

@Autowired
private FtpConnector ftpConnector;

ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<FTPClient> result = executorService.submit(ftpConnector);

关于spring - 我无法以任何方式从 Spring Boot 中的 application.properties 获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71325192/

相关文章:

java - 如何使编写方法线程安全?

java - 如何为 spring-boot 和 hibernate 配置 liquibase-maven-plugin

maven - 为什么dependencyManagement中有spring-boot-dependencies?

oracle - 使用 Oracle Streams AQ 在 Spring MDB 中共享 JMS 和 Hibernate 事务?

spring - 带有 SWI-Prolog 的 Docker 容器因 fatal error 而终止

java - POST 后将应用程序重定向到其他服务器

c# - AutoResetEvent没有正确阻止

spring - 如何在Grails和现有的oauth2提供程序中使用Spring Security实现基于表单的登录

c++ - 作为 win32 服务运行时 OpenSSL SSL_CTX_new 崩溃

spring-boot - ReactorNettyWebSocketClient 使用示例