我有一个这样的课程:
@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创建,在运行时,spring会将成员注入构造函数。 现在我需要一个设置方法,并坚持使用lombok。看来,龙目岛不能称之为自编的东西。
我想要一个像useDefaultConstructor
这样的Lombok-Annotation的新参数。当这个参数出现时,自动代码(来自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时更改它)。
答案 0 :(得分:3)
您是否尝试过Spring @PostConstruct
注释?
@PostConstruct
public void init() {
// setup-code
}
这是Spring beans lifecycle management的一部分。