Jersey 初始化功能:在 Application 对象或 ServletContextListner 中
Jersey Initialization Functionality: In Application object or in ServletContextListner
我有一个使用 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 provides a deployment agnostic abstract class Application for declaring root resource and provider classes, and root resource and provider singleton instances. A Web service may extend this class to declare root resource and provider classes.
MyApplication 的构造函数中的任何逻辑只会在收到第一个请求时执行。
如果您需要在 servlet 初始化时 运行 的逻辑,那么您应该使用 ServletContextListner。
我有一个使用 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 provides a deployment agnostic abstract class Application for declaring root resource and provider classes, and root resource and provider singleton instances. A Web service may extend this class to declare root resource and provider classes.
MyApplication 的构造函数中的任何逻辑只会在收到第一个请求时执行。
如果您需要在 servlet 初始化时 运行 的逻辑,那么您应该使用 ServletContextListner。