我是JAX-RS的新手,并且创建了一个简单的Web服务。如下
public class WebService {
public WebService(@Context UriInfo uriInfo){
}
@GET
@Path("/testGet")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response get() throws IOException{
return Response.ok().build();
}
}
一切正常。我唯一想知道的是,我只希望在整个Web服务生命周期中仅执行一次功能。这样我就可以读取属性文件。否则,我将在每次请求时阅读它。
有什么建议吗?
最佳答案
您是否尝试过静态构造函数?
public class OneTimer {
static {
System.out.println("executed only once");
}
}
或者,如果您将REST类转换为单例ejb,则可以执行以下操作
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
@Singleton
public class SingletonEJB {
@PostConstruct
public void oneTimeOnly() {
System.out.println("one time after every construct");
}
}
我更喜欢静态构造方法