Jersey初始化功能:在Application对象或ServletContextListner中

问题描述 投票:0回答:1

我有一个使用Servlet 3.0的Jersey应用程序。我有一个在servlet初始化时使用的javax.ws.rs.Application。

public class MyApplication extends ResourceConfig {....}

我有一些应该在servlet初始化时运行的逻辑。我可以将这个逻辑放在MyApplication的构造函数中,或者我可以定义一个ServletContextListner。

public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // Do stuff during server startup.
    }

    ...}

什么是正确的方法?

从Jersey文档中看来,这不是Application对象的预期用例。

JAX-RS提供了一个部署无关的抽象类Application,用于声明根资源和提供程序类,以及根资源和提供程序单例实例。 Web服务可以扩展此类以声明根资源和提供程序类。

jersey jersey-2.0 servlet-3.0
1个回答
0
投票

MyApplication构造函数中的任何逻辑只会在收到的第一个请求中执行。

如果需要逻辑在servlet初始化时运行,则应使用ServletContextListner。

© www.soinside.com 2019 - 2024. All rights reserved.