多模块项目中的Lombok@RequiredArgsConstructor未被保留



@RequiredArgsConstructor是否跨模块保留?

我有一个非常简单的项目结构(2个maven模块(:

  • 依赖性-A
  • sprint引导应用程序

依赖性A中我声明以下类:

@RequiredArgsConstructor
@RestController
@Validated
@Slf4j
public abstract class ControllerBase {}

现在在春季启动应用程序中:

@RequestMapping("/api/v1")
public class ConcreteController extends ControllerBase {
private final SomeDependency dependency

之后IntelliJ说

变量依赖关系可能未初始化

如果我从sprint引导应用程序模块检查ControllerBase的反编译版本:

@RestController
@Validated
public class ControllerBase {
private static final Logger log = LoggerFactory.getLogger(MyController.class);
public ControllerBase () {
}
}

是Lombok的限制,还是我应该以某种方式配置maven编译器插件,这样@RequiredArgsConstructor就会被保留?请告知

Lombok注释不能继承
它们是编译时指令,将代码添加到带注释的类中,而仅添加到带批注的类中
即使在同一模块中创建子类,它也不会传播。

您必须使用@RequiredArgsConstructor对每个类进行注释。

从龙目复制过去

@RequiredArgsConstructor为每个需要特殊处理的字段生成一个具有一个参数的构造函数。所有未初始化的final字段都会得到一个参数,以及任何标记为@NonNull的字段,这些字段在声明时未初始化。对于那些用@NonNull标记的字段,还会生成一个显式的null检查。如果用于标记为@NonNull的字段的任何参数包含null,则构造函数将抛出NullPointerException。参数的顺序与字段在类中的显示顺序相匹配。

最新更新