簡體   English   中英

具有默認構造函數的Lombok

[英]Lombok with default-constructor

我有一個這樣的課:

@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會將成員注入構造函數。 現在我需要一個設置方法,並堅持使用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時更改它)。

你試過Spring @PostConstruct注釋嗎?

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

它是Spring的bean生命周期管理的一部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM