gpt4 book ai didi

java - 带有默认构造函数的 Lombok

转载 作者:行者123 更新时间:2023-11-29 08:28:06 24 4
gpt4 key购买 nike

我有这样一个类:

@Service("aSpringService")
@RequiredArgsConstructor(onConstructor = @__({@Autowired}))
public class ServiceImpl implements Service {
@NonNull
private final Member1 m1;

@NonNull
private final Member2 m2;

@NonNull
private final Member3 m3;

}

构造函数将由 Lombok 创建,在运行时,sp​​ring 会将成员注入(inject)到构造函数中。现在我需要一个设置方法并被 lombok 困住了。看来,Lombok 不能称之为自写的东西。

我想要什么

我想要 Lombok-Annotation 的新参数,例如 useDefaultConstructor。当此参数存在时,自动化代码(来自 Lombok)将调用无参数构造函数,我可以自己编写该构造​​函数。

@RequiredArgsConstructor(onConstructor = @__({@Autowired}), useDefaultConstructor = true)
// Note the "useDefaultConstructor = true"
public class ServiceImpl implements Service {
@NonNull
private final Member1 m1;

private ServiceImpl() {
//some self-written setup-code
}
}

生成类:

public class ServiceImpl implements Service {
private final Member1 m1;

// This constructor is not generated by lombok
private ServiceImpl() {
//some self-written setup-code
}

// Constructor generated by lombok
@Autowired
public ServiceImpl(Member1 m1) {
this(); // <- only created when "useDefaultConstructor" is present
this.m1 = m1;
}
}

问题

有没有办法用 lombok 做到这一点?我懒得为自己编写构造函数(并且每次需要新的 spring-member 时都更改它)。

最佳答案

你试过Spring的@PostConstruct注解吗?

@PostConstruct
public void init() {
// setup-code
}

它是 Spring 的 beans lifecycle management 的一部分.

关于java - 带有默认构造函数的 Lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com