Hi, Spring Team. This is chickenchickenlove, huge fan of you all.

I suggest adding a new Hooking point. How about adding a new Hooking Point between SmartLifeCycle#start() and @PostConstruct? Sometimes, IMHO, it could be useful at times.

It would be great if it could be used in a similar convention to ApplicationEvent and @EventListener.

@EventListener(BeforeSmartLifeCycleStart.class)
public void doSomething(){
...
}

Thanks for reading this. 🙇‍♂️

Comment From: quaff

Please describe your actual use case.

Comment From: snicoll

Sometimes, IMHO, it could be useful at times.

Thanks for the suggestion but, without at least one concrete example, this issue is not actionable I am afraid. Before we consider adding an extra API to the core framework, we need to understand what's lacking with what we have and how we could improve it.

Comment From: artembilan

I think SmartInitializingSingleton.afterSingletonsInstantiated() is the way to go for this use-case. This way all the beans have called their afterPropertiesSet() and no SmartLifeCycle.start() called yet.

Comment From: snicoll

That was one callback I had in mind indeed, but we can't know for sure until @chickenchickenlove shares why they're asking for another hook point.

Comment From: artembilan

In my feeling, according to the related Spring for Apache Kafka PR, the solution lays indeed in the afterSingletonsInstantiated(). And this request was done because @chickenchickenlove had not been aware about SmartInitializingSingleton.

Comment From: snicoll

OK I am trusting you have more context on that so let's close this.