Невозможно подключиться с помощью аннотации ActiveProfile
Впервые пользуюсь профилями и нуждаюсь в помощи. У меня есть абстрактный базовый класс (DecisionManagementRuleExecutor), который получает свою зависимость (RuleHandler) с помощью аннотации.
@Component
public class RuleHandler {......
public abstract class DecisionManagementRuleExecutor<M extends PersistentEntity,T extends Response> implements RuleExecutor<M,T>{
@Autowired
RuleHandler ruleHandler;
Когда я работаю с профилем 'itest', я хочу, чтобы 'ITestRuleHandler' был дочерним по отношению к RuleHandler. Где "ItestRuleHandler"
@Component
@ActiveProfiles(value = "itest")
public class ITestRuleHandler extends RuleHandler {
Я вижу, что в логах активный профиль "самый"
System.getProperty("spring.profiles.active")
Я наклеиваю бревно для проводки
Обработка внедренного элемента bean-компонента vendorServiceRuleExecutor: AutowiredFieldElement для capdRuleHandler capdsDecisionManagementRuleExecutor.ruleHandler Возвращение кэшированного экземпляра одноэлементного компонента 'ITestRuleHandler' Создание общего экземпляра правила одноэлементного бина 'ruleHandly' Создание экземпляра bean-компонента EH потенциальные циклические ссылки Завершено создание экземпляра bean-компонента "ruleHandler". Автоматическая разводка по типу от имени компонента "vendorServiceRuleExecutor" к компоненту с именем "ruleHandler" Завершено создание экземпляра компонента "vendorServiceRuleExecutor"
Изменить: изменил RuleHandler как интерфейс, и теперь я получаю эту ошибку:
No qualifying bean of type [c.a.p.d.RuleHandler] is defined: expected single matching bean but found 2: ITestRuleHandler,iTestRuleHandler
1 ответ
Чтобы сделать реализацию ITestRuleHandler
доступны для itest
профиль, вы должны объявить свой класс как:
@Component
@Profile("itest")
public class ITestRuleHandler extends RuleHandler
@ActiveProfiles
активирует один или несколько профилей, не выставляя компонент для профиля. Это должно применяться к одному из тестовых (или потребляющих) классов, чтобы активировать профиль для тестирования (или потребления).