![](/img/trans.png)
[英]Spring abstract class with final fields and inheritance with lombok's @SuperBuilder
[英]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.