Java Web服务生命周期

Java Web服务生命周期,java,web-services,Java,Web Services,我正在用java创建一个web服务,它提供了提供有关实体信息的工具,为此我计划构建一个缓存,它保存所有信息,并向客户机提供他/她从缓存中需要的任何信息。因此,我只能在Web服务启动时构建缓存一次,而不是在每个客户端请求上 我的问题是我应该在哪里构建缓存 无论我读到了什么关于它的内容,对于每个客户机调用,都会调用构造函数,因此我应该在哪里添加缓存构建功能或其他替代功能 我找到的一个答案是使用@stateless来解决这个问题。根据Web服务器所关心的问题,缓存应该放在Web服务器之上,称为反向代理

我正在用java创建一个web服务,它提供了提供有关实体信息的工具,为此我计划构建一个缓存,它保存所有信息,并向客户机提供他/她从缓存中需要的任何信息。因此,我只能在Web服务启动时构建缓存一次,而不是在每个客户端请求上

我的问题是我应该在哪里构建缓存

无论我读到了什么关于它的内容,对于每个客户机调用,都会调用构造函数,因此我应该在哪里添加缓存构建功能或其他替代功能


我找到的一个答案是使用@stateless来解决这个问题。

根据Web服务器所关心的问题,缓存应该放在Web服务器之上,称为反向代理

话虽如此

  • 如果您正在构建一个RESTful web服务,那么您可以利用大多数针对您的资源的Http相关缓存控件

  • 如果您的服务是基于Jax-WS的,那么您可以构建缓存并通过数据访问通道填充它。因此,任何数据检索/更新都要经过它,并且(如果未找到,请点击数据库,如果找到返回类型)有效地减少了数据库点击


TechExchange为我的问题提供了一个很好的解决方案,但由于我需要一个可以与我创建的现有基于soap的Web服务一起使用的解决方案,我确实创建了一个bean,它构建了一个缓存,并在Web服务开始时使用spring注入将其注入,因此这个bean将构建缓存,并且可以由Cleint使用在所有请求上。

我应该避免使用webservice,并在两者之间创建一个反向代理,使用来自webserver的数据?如果我错了,请纠正我。酷,我知道了。但是,是否有其他方法可以使用现有创建的Web服务而不是创建新的反向代理。您构建的Web服务类型是什么?使用cxf的基于Soap的Web服务。我应该何时构建缓存?在构造函数中?