I have a library doing runtime setup and configuration of log4j (no log4j.properties or log4j.xml). I have defined a bean with class called MyLoggerFactory and I want this to be the first bean to be initialised using spring. I have seen that an issue has already been filed with spring to have support for order of initialisation but I was wondering whether there was a way to mark a bean as the first bean to be initialised by spring container?
I have a library doing runtime setup and configuration of log4j (no log4j.properties or
Share
Your options are:
@DependsOnannotation(available after spring 3.0.x) ordepends-onxml-attribute and make all classes that use the configured loggers depend on the logger factorymain()method, or aServletContextListenerregistered before the one that initializes Spring.There is no way to explicitly define initialisation order in Spring and likely never will be – there’s no way to define useful semantics for it considering you can load many application context configuration files which might have conflicting orderings. I’ve yet to see a case where the desired ordering couldn’t be achieved by refactoring your code to better conform to the dependency injection pattern.