First, Applicationcontextaware interface
Public Interface extends Aware { voidthrows beansexception;}
View Code
Second, Servletcontextaware interface
Public Interface extends Aware { void setservletcontext (ServletContext var1);}
View Code
Third, Initializingbean interface
Public Interface Initializingbean { voidthrows Exception;}
View Code
Four, applicationlistener<applicationevent> interface
Public Interface extends extends EventListener { void onapplicationevent (E var1);}
View Code
Execution order
@Component Public classStartuplistenerImplementsApplicationcontextaware, Servletcontextaware, Initializingbean, Applicationlistener<ContextRefreshedEvent> { protectedLogger Logger =Logmanager.getlogger (); @Override Public voidSetapplicationcontext (ApplicationContext ctx)throwsbeansexception {logger.info ("1 = startuplistener.setapplicationcontext"); } @Override Public voidSetservletcontext (ServletContext context) {Logger.info ("2 = Startuplistener.setservletcontext"); } @Override Public voidAfterpropertiesset ()throwsException {logger.info ("3 = Startuplistener.afterpropertiesset"); } @Override Public voidonapplicationevent (contextrefreshedevent evt) {logger.info ("4.1 = myapplicationlistener.onapplicationevent"); if(Evt.getapplicationcontext (). getParent () = =NULL) {Logger.info ("4.2 = myapplicationlistener.onapplicationevent"); } } }
View Code
At run time, the output is in the following order:
1 = Startuplistener.setapplicationcontext
2 = Startuplistener.setservletcontext
3 = Startuplistener.afterpropertiesset
4.1 = Myapplicationlistener.onapplicationevent
4.2 = Myapplicationlistener.onapplicationevent
4.1 = Myapplicationlistener.onapplicationevent
Some common interfaces in spring