ServletContextEventHandler和静态块都具有较高的启动优先级。在使用中,有什么区别?什么应该放在SC事件处理程序和静态块?Java ServletContextEventHandler和静态块
感谢 明
ServletContextEventHandler和静态块都具有较高的启动优先级。在使用中,有什么区别?什么应该放在SC事件处理程序和静态块?Java ServletContextEventHandler和静态块
感谢 明
我想你的类和对象的生命周期的误解。
A static
块在加载类时执行,这或多或少取决于您的应用程序正在使用的ClassLoader
。在static
上下文中,您只能访问其他static
组件。
ServletContextEventHandler
的一个对象,我假设你的意思是ServletContextListener
,它是一个钩子,当它初始化并被销毁时,你可以用它来访问应用程序的ServletContext
。
有关类加载器如何在java中工作的更多信息,请参阅http://stackoverflow.com/q/11395074/1065197和网络中的其他链接,如http://javarevisited.blogspot.com/2012/12/how- classloader-works-in-java.html和http://www.javaworld.com/jw-10-1996/jw-10-indepth.html –
还有一个:http://javarevisited.blogspot.ca/2012/ 07 /当类加载,初始化-java的example.html的 –
加载类时将执行“静态”代码块,因此它将首先执行。如果你发布一个你想要实现的真实特定样本,而不是仅仅询问,那会更好。请注意,在两种情况下,都可以通过'System.out.println'轻松证明。 –