Как не создавать бины на основе других бинов? - PullRequest
1 голос
/ 08 мая 2019

У меня есть класс конфигурации, в котором он аннотирован @Configuration.2 боба созданы.Эти бины используются с аннотацией @Profile, поэтому, если для профиля установлено значение prod, он будет создан.

Я использую Lombok, один из моих классов помечен @RequiredArgsConstructor, и у меня есть несколько полей private final, которые, по сути, автоматически связывают Lombok в фоновом режиме.Из bean-компонентов, которые он автоматически передает, только один метод в этом классе зависит от этих bean-компонентов, и этот метод должен использоваться только в рабочей среде env.

Проблема, с которой я столкнулся, заключается в том, как я могу заставить lombok не создавать экземпляры bean-компонентов?

Конфигурация:

@Configuration
@Profile("PROD")
@RequiredArgsConstructor
public class ClientFilterConfiguration {



@Bean
public Client createClient() {
    ... return client;
}

@Bean
public Filter createFilterBean(){
    ....return filter;
}

}

Класс:

@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/client")
public class ClientController {

   private final Admin admin;
   private final AdminDuo adminDuo;
   private final Client client;
   private final Filter filter;

   public void clientPurchase(){
       ...
   }

}

Получение следующей ошибки:

... требуется компонент типа com.example.Client, который не может быть найден.
Действие: рассмотрите возможность определения bean-компонента типа 'com.example.Client' в вашей конфигурации.

Только один метод в этом классе полагается на bean-компонент Client и Filter, так что есть способпредотвращение этой ошибки?

...