我是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");
    }
}


我更喜欢静态构造方法

09-10 07:05
查看更多