StackOverflowError в Quarkus при внедрении бина
Всем привет. Только начал изучать Quarkus и столкнулся со следующей проблемой. Я пытаюсь внутри одного класса создать бин-метод, который будет в этом же классе будет инжектиться в поле, но при попытки это реализовать вылезает следующая ошибка.
java.lang.StackOverflowError at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:16) at org.acme.FruitResource_ClientProxy.arc$delegate(Unknown Source) at org.acme.FruitResource_ClientProxy.arc_contextualInstance(Unknown Source) at org.acme.FruitResource_ProducerMethod_test1_30971dd21bc0aeb2f7e08afc5f6cd8cedb3b50e0_Bean.create(Unknown Source) at org.acme.FruitResource_ProducerMethod_test1_30971dd21bc0aeb2f7e08afc5f6cd8cedb3b50e0_Bean.get(Unknown Source) at org.acme.FruitResource_ProducerMethod_test1_30971dd21bc0aeb2f7e08afc5f6cd8cedb3b50e0_Bean.get(Unknown Source) at org.acme.FruitResource_Bean.create(Unknown Source) at org.acme.FruitResource_Bean.create(Unknown Source)
Вот оригинальный код:
'''
@ApplicationScoped
public class FruitResource {
@Inject
Test test;
@Produces
public Test test1() {
return new Test("test1");
}
}
public class Test {
private String name;
public Test(String name) {
this.name = name;
}
public Test() {
}
}
'''
Подскажите как обойти подобную проблему, если я хочу сделать, например, конфигурационный класс на подобии следующего:
'''
@Configuration
@EnableScheduling
public class TelegramBotNotifyConfig {
@Bean(name = "message-service-user")
public MailService messageService() {
return new MailServiceImpl(new MailRepositoryList());
}
@Bean(name = "unit-pointer-repository-user")
public UnitPointerRepository unitPointerRepository() {
return new UnitPointerRepositoryMap();
}
@Bean(name = "message-autoresponder-telegram-user")
public MessageAutoresponderTelegram messageAutoresponderTelegram(
@Qualifier("start-telegram-bot-user") AnswerCheck checkRegistration,
@Qualifier("sending-user") Sending sending,
@Qualifier("message-service-user") MessageService<Mail> messageService,
@Qualifier("unit-pointer-repository-user") UnitPointerRepository unitPointerRepository
) {
return new MessageAutoresponderTelegram(
Collections.singleton(checkRegistration),
sending,
messageService,
unitPointerRepository
);
}
@Bean(name = "sending-user")
public Sending sending(
@Qualifier("telegram-connect-user") TelegramConnect telegramConnect
) {
return new TelegramSender(telegramConnect);
}
@Bean(name = "telegram-connect-user")
public TelegramConnect telegramConnect(
@Qualifier("telegram-user-config") TelegramPollingConfig telegramConfig
) {
return new TelegramConnect(telegramConfig);
}
@Bean(name = "event-distributor-user")
public EventDistributor eventDistributor(
@Qualifier("telegram-connect-user") TelegramConnect telegramConnect,
@Qualifier("message-service-user") MailService mailService
) {
return new EventDistributorImpl(telegramConnect, mailService);
}
}'''