如何使用Struts2在服务器启动时运行操作?

LNy*_*rla 6 java tomcat action struts2 startup

我必须在服务器启动时而不是在第一个请求上执行struts2操作.

And*_*ios 5

在启动应用程序时加载数据是一项常见任务,您会在网上找到几个示例。如其他答案中所述,您应该实现一个ServletContextListener(不是特定于Struts2的)...您可以在此处阅读一个出色的示例

这里重要的是要了解Action概念:

Struts2 MVC(模型视图控制器)框架中,an ActionController(和的一部分Model)。

Actions由Request来自的Clients 调用(并且在每个请求上都会创建一个Action,因此它们是线程安全的)。

这意味着您需要一个客户端,这通常意味着一个人坐在电脑前,单击浏览器...然后,客户端调用不是在共享对象上执行服务器端自动操作的正确触发器。

当然,您可以实现某种形式的lazy-initialitazion(例如在自定义拦截器的帮助下),以便第一个用户可以在Application范围内设置某些内容,而其他用户可以检索已经填充的对象,但这不是最好的方法(您应该在初始化时处理并发性,并且将有一个用户,第一个用户,等待服务器在启动时夜间进行的操作...)。