As for Spring. There are many other DI containers out there, Spring is definitely not the best of them (I'd say worst, but this is mostly irrelevant). Some DI containers, for example, Guice, use explicit configuration and this preserves much more context than Spring does. Haven't tried Micronaut, but givent that it uses compile-time annotation processing, it should address at least some Spring pain points.
Some code examples are provided in the Introduction To Pragmatic Functional Java article and several others from my blog: here and here. Finally, there is a (WIP) demo project at GitHub.
As for Spring. There are many other DI containers out there, Spring is definitely not the best of them (I'd say worst, but this is mostly irrelevant). Some DI containers, for example, Guice, use explicit configuration and this preserves much more context than Spring does. Haven't tried Micronaut, but givent that it uses compile-time annotation processing, it should address at least some Spring pain points.
Thank you very much @siy