Spring Boot создает экземпляр класса, передающий параметры конструктору

#java #spring-boot #postconstruct

#java #spring-boot #postconstruct

Вопрос:

В Spring Boot у меня есть класс, который я хочу создать, передав параметры в конструктор во время выполнения. Я могу это сделать, но все свойства AutoWire равны нулю, и PostConstruct не вызывается.

 Constructor<KafkaController> constructorsA[] = (Constructor<KafkaController>[]) KafkaController.class.getConstructors();
KafkaController kafkaObject = constructorsA[0].newInstance(new Object[] { "1", "2" });
  

Это класс, о котором идет речь

 @Component
public class KafkaController {

private KafkaConsumer<String, String> consumer;

@Autowired
private Util sentinelUtil;

final String subscriberID;
final String interactionID;

@Autowired
public KafkaController(@Value("") String subscriberID, @Value("") String interactionID) {
    this.subscriberID = subscriberID;
    this.interactionID = interactionID;
}

@PostConstruct
private void initKafka() {

}

}
  

Должен ли я создавать экземпляр класса, используя другой метод?

Комментарии:

1. Вы создаете его вне контекста spring, spring не знает ни о каком классе, который он не создает. Чего именно вы пытаетесь достичь? Существует несколько методов создания различных экземпляров компонентов на основе внешних свойств.

2. Я хочу передать два параметра классу, который откроет очередь Kafka и вернет данные на основе переданных данных.