java – 为我的Vaadin Web应用程序启动和停止挂钩?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为我的Vaadin Web应用程序启动和停止挂钩?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2814字,纯文字阅读大概需要5分钟。
内容图文
我怎么知道我的Vaadin 7网络应用程序何时首次启动/启动,所以我可以做一些初始设置工作?
同样,我怎么知道我的网络应用何时结束,关机/退出?
解决方法:
的ServletContextListener
Vaadin建立在Java Servlet技术之上. “上下文”是Servlet术语中Web应用程序的技术术语.所以这里的答案不是Vaadin特有的,它适用于任何Servlet – 而在一天结束时,Vaadin只是一个大Servlet.
从Servlet规范版本2.3开始,诸如Tomcat,Jetty等Servlet container必须承诺关注您定义为实现ServletContextListener接口的任何Java类.该接口有两个简单的方法:
>当您的网络首次启动时被调用的一个(contextInitialized)
>当您的网络应用程序结束时被调用的一个(contextDestroyed).
结束可能是由Servlet容器(例如:Tomcat)关闭导致所有Web应用程序(“上下文”)结束,或者因为您的Vaadin应用程序的上下文结束(如果您的Servlet容器支持每个上下文关闭) .
每个Servlet容器必须满足的合同是每个ServletContextListener类(可以有多个)必须在执行任何servlet或过滤器之前调用其contextInitialized.所以这是进行初始化工作的最佳时机,这可能比单个Servlet请求 – 响应周期更有益.如果你需要启动一个数据库,如 [H2 Database),这是一个好时机.如果将一些数据作为缓存加载到内存中以供servlet重复使用,那么现在是个好时机.例如,也是测试应用程序资源,确定日志记录工作或某些预期文件的好时机.
同样,每个兼容的Servlet容器仅在servlet和过滤器完成上次调用后才调用contextDestroyed.因此,这是关闭数据库,进行备份或执行适合您的Web应用程序的任何其他清理工作的好地方.
我们正在讨论您的Web应用程序“上下文”的生命周期.该上下文可能涉及一个或多个servlet.上下文的生命周期超出了参与此背景的life cycle of any one of the servlets.上下文有点像女王蜂,她在一个新的蜂巢中生下她所有的无人机,她生活在她们面前,她将在她们尽职尽责地为她而死的时候比她们更长寿(如果这是一个蜂巢作品?).
定义ServletContextListener
制作ServletContextListener非常简单:使用一对方法和一个注释创建一个类.
添加一个新的Java类作为Vaadin应用程序的一部分.您可以根据需要为课程命名.
我将我的上下文监听器添加到与我的主要Vaadin应用程序UI类相同的包中(MyUI.java可能由您的Vaadin插件或Maven原型生成).看起来像一个自然的地方,因为上下文监听器是我的Vaadin应用程序在任何用户被处理之前启动的开始,而指定的UI类将是我为每个用户运行的第一部Vaadin应用程序.
将您的类声明为实现ServleContextListener.添加上面讨论的两种必要方法;你的IDE可以协助这件苦差事.
还有一个技巧:您必须通知Servlet容器有关此上下文侦听器的信息.有不止一种方法可以做到这一点,但我在课堂上使用最简单的注释@WebListener.
这是一个完整的示例类.
package com.example.amazingapp;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
*
* @author Basil Bourque
*/
@WebListener
public class WebAppListener implements ServletContextListener {
@Override
public void contextInitialized ( ServletContextEvent sce ) {
System.out.println ( "My Vaadin web app is starting. " );
}
@Override
public void contextDestroyed ( ServletContextEvent sce ) {
System.out.println ( "My Vaadin web app is shutting down." );
}
}
内容总结
以上是互联网集市为您收集整理的java – 为我的Vaadin Web应用程序启动和停止挂钩?全部内容,希望文章能够帮你解决java – 为我的Vaadin Web应用程序启动和停止挂钩?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。