title: Change beans post processing order without explicit configuration
body: <p>I'm aware of the fact that the order of bean loading is implicitly determined by dependencies and transitive dependencies.</p>
  
  <p>Imagine you have a set of annotated beans that provide you with some sort of metadata that you want to apply to another set of AwareBeans. So that only after you gather all the metadata from N beans, only after that you can post process the AwareBeans. You typically use <code>org.springframework.beans.factory.config.BeanPostProcessor</code> for this kind of stuff. How to deal with the order though? I think that even setting up <code>depends-on</code> explicitly doesn't take precedence over dependencies as to loading order, right?</p>
  
  <p>There is an interface <code>org.springframework.core.Ordered</code> that just determines on the order of beanPostProcessors being applied, but not the order of beans.</p>
  
  <p>I could use <code>org.springframework.beans.factory.config.BeanFactoryPostProcessor</code> but bean definition has not enough information before bean instantiation. For example <code>beanDef.getBeanClass()</code>  returns bean class name etc.</p>
  
  <p>Is that any other way you could think of how to do what I want ?</p>