当前位置: 首页 > 知识库问答 >
问题:

spring-龙目岛呼叫超级构造器

何兴邦
2023-03-14

我正在使用Lombok的@superbuilder注释在我的@restcontrooler类中创建一个超级构造函数。

我的抽象控制器类:

@SuperBuilder
public abstract class MyAbstractController {
   protected final MyService myService;
}

我的控制器实现类:

@RestController
@RequestMapping("/myMapping")
@SuperBuilder
public class MyAbstractControllerImpl extends MyAbstractController{

    public ResponseEntity<String> testStuff() {
         myService.doStuff();
         // etc
    }
}

我的服务类别:

@Service
public class BroadcastLocalServiceImpl {
   
   public void doStuff() {
      // etc
   }

基本上,我希望Lombok在MyAbstractControllerImpl中创建一个类似的构造函数

public MyAbstractControllerImpl(MyService myService){
   super(myService);
}

我的应用程序无法启动,错误消息如下所示:

MyAbstractControllerImpl中构造函数的参数0需要类型为“MyAbstractControllerImpl$MyAbstractControllerImpBuilder”的bean,但找不到该bean。

有什么想法,我如何成功地创建一个超级构造函数与龙目岛和spring?

共有1个答案

汪臻
2023-03-14

builder模式可以与state full对象(带有数据的对象)一起使用,以便生成快速的init机制。控制器类应该是无国籍的类。试着用一个没有spring映射的普通Java对象做同样的例子。

 类似资料:
  • 我有一个类BaseEntity: 和一个扩展类: 我正在尝试使用生成器构建播种机: 我希望Lombok使用基类baseEntity在BreedEntity中创建一个构造函数。 我读了留档,当我删除@实体anotation SuperBuilder文档时,它工作得很好 有人能更详细地解释为什么会发生这种情况吗?

  • 我将Lombok项目与Spring Data JPA一起使用。有没有办法将Lombok与JPA默认构造函数连接起来? 代码: 据我所知,JPA需要默认构造函数,该构造函数由注释覆盖。有什么解决办法吗? 这段代码给我错误:< code > org . hibernate . instantiation exception:entity::app . domain . model . person没有

  • 目前无法与Gradle和龙目岛建立新项目。 我知道这是旧版本gradle和lombok的常见问题,并在本网站上看到类似问题,但我使用的是最新版本,无法通过此问题 环境信息 Java:openjdk 13.0.1 2019-10-15(这是OpenJ9版本,不是热点版本) 建筑gradle(使用Spring初始化器构建) 我尝试过的事情 我尝试过将deps换成Lombok gradle插件,如下所述

  • 我在gradle项目中使用lombok,希望创建一个jar文件,但每次我执行jar任务(无论是在控制台还是eclipse ide中触发)时,我都会发现错误,我的lombok导入在我使用lombok注释的类中找不到。输出示例: 搜索了一段时间后,我发现有一个适用于gradle和lombok的插件,但在使用较新的gradle版本编译时并不真正需要。我的gradle版本是3.4.1和lombok 1.6

  • 我在Maven的Spring启动项目中使用Lombok。我的IDE是vscode 我尝试使用Lombok注释器创建这样的类: 它工作正常。但是,当我尝试切换到注释时,我遇到了一个错误: 我以为@Data注释应该为我构建构造函数。这是怎么回事?

  • 问题内容: 我有一堂课,看起来像这样: 在这里,我不得不写a,因为如果我想在使用Lombok时返回Optional,则必须声明为。这将生成一个接受的生成器方法! 还有其他方法可以使用lombok 吗? 问题答案: 答案是否定的,可能永远也不会。 您可能做错了:-) 并不是预防的替代品,也不是预防的奇特方法。这表示该问题无法回答,例如:空人员列表的平均年龄是多少。 绝对不应传递,而应尽快由调用代码取