繁体   English   中英

Lombok SuperBuilder Spring Autowire 子类问题

[英]Lombok SuperBuilder Spring Autowire Issue With Child Class

我有一个父类:

@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@SuperBuilder
@Service
public class Parent {}

还有一个子类:

@Profile("integration")
@SuperBuilder
@Service
public class Child extends Parent {}

我只在这样的集成测试中使用这个子类:

@SpringBootTest(
        classes = {
            ...
            Child.class,
            ...
        })
@ActiveProfiles({"integration"})
class ITTest {
    @Autowired
    private Child child;
}

当我尝试运行集成测试时,我在加载应用程序上下文时遇到问题:

通过构造函数参数 0 表示的不满足的依赖关系; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“...service.integration.interfaces.Child$ChildBuilder”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。 依赖注释:{}

父类在 main 下,子类和集成测试在 test 包下。

我怎么解决这个问题?

我已经解决了这个问题:

我删除了整个 @SuperBuilder 并自己实现了构造函数。 还使用了默认应用程序上下文,因此从@SpringBootTest 中删除了类:

@RequiredArgsConstructor
@Service
public class Parent {}


@Service
public class Child extends Parent {

      public Child() {
         super();
    }
}

@SpringBootTest
class ITTest {
    @Autowired
    private Child child;
}

它会自动自动装配正确的 bean。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM