I don't think getPhase() has anything to do with the order of setApplicationContext() being called (it will always be called before any component's start() method is invoked though). In general, this is the reason it's recommended to do nothing more than grab a context reference, then only start "using" it from a start() call or a ContextStartedEvent listener.