от
У меня есть следующий сценарий: фабричный интерфейс с 2 реализациями, в то время как вторая используется в качестве декоратора для первой.
public final class BaseMailFactory implements MailFactory {

    @Autowired
    private final ClassA classA;

    @Autowired
    private final ClassB classB;

    public Mail createMail(){
        .
        .
        .
    }
}

public final class MetricAwareMailFactory implements MailFactory {

    private final MailFactory mailFactory;

    public Mail createMail(){
        var mail = mailFactory.createMail();
        return new MetricsAwareMail(mail);
    }
}

@Configuration
public class MailFactoryConfiguration {

    @Bean
    public MailFactory metricsAwareMailFactory(){
        return new MetricAwareMailFactory(???);
    }
}
Обернутый объект ранее создавался в контексте Spring, поэтому все автоматически связанные поля были заполнены. После создания второй реализации я изо всех сил пытаюсь найти элегантный способ инициализации первого экземпляра без добавления нескольких реализаций в интерфейс
MailFactory
, который приводит к ошибкам запуска приложения из-за неоднозначности. Я знаю, что я могу использовать это право, но они загрязняют мой код. Я ищу способ создания экземпляра класса через Spring, но на самом деле не регистрирую его как bean-компонент, в более старых версиях Spring я использую анонимные bean-компоненты для таких целей.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...