Java Jersey REST服务器:实例化资源类

Java Jersey REST服务器:实例化资源类,java,jakarta-ee,jersey,jax-rs,Java,Jakarta Ee,Jersey,Jax Rs,Jersey REST服务器[1]上的一篇教程介绍了Jersey servlet: 这个servlet分析传入的HTTP请求,并选择正确的类和方法来响应该请求。此选择基于类和方法中的注释 当servlet“选择正确的类和方法”时,它是否每次都重新实例化该类?还是每个资源类都保留一个实例 这似乎很重要,因为如果这些资源类引用了存储应用程序范围内状态的对象,这些状态对象将与资源一起重新实例化,并且最终无法正确存储状态数据 [1] 实际上,根据此默认注释类型,从单例更改为每个请求。这意味着以前每个请求

Jersey REST服务器[1]上的一篇教程介绍了Jersey servlet:

这个servlet分析传入的HTTP请求,并选择正确的类和方法来响应该请求。此选择基于类和方法中的注释

当servlet“选择正确的类和方法”时,它是否每次都重新实例化该类?还是每个资源类都保留一个实例

这似乎很重要,因为如果这些资源类引用了存储应用程序范围内状态的对象,这些状态对象将与资源一起重新实例化,并且最终无法正确存储状态数据


[1]

实际上,根据此默认注释类型,从单例更改为每个请求。这意味着以前每个请求使用一个实例,但现在为每个请求创建新的类对象。如果要更改它,可以使用resourceFactory注释

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@ResourceFactory(SingletonProvider.class)
public @interface Singleton {}

此外,您还可以查看com.sun.jersey.spi.resource的此链接,jersey将为每个请求建立每个类的新实例,除非您使用
@Singleton
注释该类


请看:

我想我明白这一点。但只需使用@Singleton即可