首次使用个人资料并需要帮助。 我有一个抽象基类(DecisionManagementRuleExecutor),它通过注释连接它的依赖项(RuleHandler)。
@Component
public class RuleHandler {......
public abstract class DecisionManagementRuleExecutor<M extends PersistentEntity,T extends Response> implements RuleExecutor<M,T>{
@Autowired
RuleHandler ruleHandler;
当我使用&#39; itest&#39;个人资料,我想要&#39; ITestRuleHandler&#39; RuleHandler&#39;的孩子有线。 在哪里&#39; ItestRuleHandler&#39;是
@Component
@ActiveProfiles(value = "itest")
public class ITestRuleHandler extends RuleHandler {
我在日志中看到活动个人资料是&#39; itest&#39;
System.getProperty("spring.profiles.active")
我正在粘贴日志以进行接线
处理bean的注入元素&#39; vendorServiceRuleExecutor&#39;:autowiredFieldElement for c.a.p.d.RuleHandler c.a.p.d.s.DecisionManagementRuleExecutor.ruleHandler 返回单例bean的缓存实例&#39; ITestRuleHandler&#39; 创建单例bean的共享实例&#39; ruleHandler&#39; 创建bean的实例&#39; ruleHandler&#39; 热切地缓存bean&rule;规则处理程序&#39;允许解决潜在的循环引用 完成创建bean的实例&rule;规则处理程序&#39; 按bean名称&#39; vendorServiceRuleExecutor&#39;按类型自动装配以bean命名的&#39; ruleHandler&#39; 完成创建bean的实例&vendorServiceRuleExecutor&#39;
编辑: 更改了&#39; RuleHandler&#39;作为一个界面,现在我收到这个错误:
No qualifying bean of type [c.a.p.d.RuleHandler] is defined: expected single matching bean but found 2: ITestRuleHandler,iTestRuleHandler
答案 0 :(得分:0)
要使ITestRuleHandler
个人资料的实施itest
可用,您需要将您的课程声明为:
@Component
@Profile("itest")
public class ITestRuleHandler extends RuleHandler
@ActiveProfiles
激活一个或多个配置文件,而不是公开配置文件的组件。这应该应用于其中一个测试(或消费)类,以激活用于测试(或消费)的配置文件。