0 Вопрос: Как не создавать бины на основе других бинов?

вопрос создан в Wed, May 8, 2019 12:00 AM

У меня есть класс конфигурации, в котором он аннотирован @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, поэтому есть ли способ предотвратить эту ошибку?

    
1
  1. Поместите этот метод в другой контроллер, также помеченный @Profile("PROD"). Или измените два типа аргумента на Необязательный < Client > и Необязательный < Filter >.
    2019-05-08 16: 50: 06Z
0 ответов                              0                         
источник размещен Вот