将 Lombok 库添加到项目中。
关键是我通常通过@Autowiredsetter 或构造函数注入 spring bean。由于可能的循环依赖,它似乎比 over fields 更安全。
但是在将项目转移到 Lombok 之后,我使用了 annotation @Data,所以 getter/setter 是不可见的。并且不清楚如何使用@Autowired. 穿什么?或者如何在没有这个注释的情况下注入?
将 Lombok 库添加到项目中。
关键是我通常通过@Autowiredsetter 或构造函数注入 spring bean。由于可能的循环依赖,它似乎比 over fields 更安全。
但是在将项目转移到 Lombok 之后,我使用了 annotation @Data,所以 getter/setter 是不可见的。并且不清楚如何使用@Autowired. 穿什么?或者如何在没有这个注释的情况下注入?
@Value而是@Data关于 POJO、实体和幂等性。更常见的是在 bin 下,这也@Autowired意味着@Service,@Repository和@Component它们的派生词。声明注入 bean 的变量
pivate final以及使用 Lombok 注释就足够了@RequiredArgsConstructor。User这是一个真空抽象的例子。UserRepository->UserService->UserController循环依赖是糟糕设计的标志,摆脱它们。最好通过构造函数注入依赖。
如果类型注入是合适的,那么不需要做任何其他事情(对于无状态 bean,使用 @Value,其余的 - @Data)——生成的 lombok 构造函数将工作,spring 将自己注入依赖项。
服务应该是什么样子的一个例子: