Spring ConfigurationProperties Проблема - PullRequest
1 голос
/ 22 февраля 2020

У меня есть приложение с загрузочной пружиной и этот фрагмент кода, как показано ниже

@ConfigurationProperties(prefix = “asynchronous-helper”)
public class AsynchronousHelper {
   private transient ExecutorService executor;
}

В файле свойств у меня есть

asynchronous-helper.executor.maximumPoolSize=10
asynchronous-helper.executor.corePoolSize=10

Пока работает MaximumPoolSize, corePoolSize завершается ошибкой с ошибкой ниже

Failed to bind properties under ‘asynchronous-helper.executor’ to java.util.concurrent.ExecutorService:

Property: asynchronous-helper.executor.corepoolsize
Value: 10
Origin: “asynchronous-helper.executor.corePoolSize” from property source “class path resource [backend-product.properties]”
Reason: Failed to bind properties under ‘asynchronous-helper.executor’ to java.util.concurrent.ExecutorService

Action:
Update your application’s configuration

Конкретный класс исполнителя - java .util.concurrent.ThreadPoolExecutor

Есть идеи, почему это происходит и как его решить?

1 Ответ

0 голосов
/ 24 февраля 2020

Это сработало. Создан конфиг bean

@Configuration
public class AsyncHelperConfig {
  @Value("${asynchronous-helper.executor.core-pool-size:10}")
  private Integer corePoolSize;

  @Value("${asynchronous-helper.executor.maximum-pool-size:10}")
  private Integer maximumPoolSize;

  @Value("${asynchronous-helper.executor.keep-alive-time:10}")
  private Integer keepAliveTime;

  private transient ExecutorService executor;

@Bean
public AsynchronousHelper asynchronousHelper(){
    AsynchronousHelper asynchronousHelper = new AsynchronousHelper();
    executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, 
   keepAliveTime, TimeUnit.MINUTES,
            new LinkedBlockingQueue<Runnable>());
    asynchronousHelper.setExecutor(executor);
    return asynchronousHelper;
}

И в бобах. xml добавлен следующий конфиг

<bean id="AsyncHelperConfig" 
    class="asynchonous.AsyncHelperConfig"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...