我正在用java创建一个Web服务,它提供了提供有关实体信息的工具,为此我计划构建一个缓存来保存所有信息,并为客户端提供他/她需要的缓存中的任何信息。所以我只需要在 web 服务启动时而不是在每个客户端请求上构建一次缓存。
我的问题是我应该在哪里构建缓存?
无论我读到什么,对于每个客户端调用都会调用构造函数,所以我应该在哪里添加缓存构建功能或其他替代方法。
我找到的答案之一是使用@stateless 来解决这个问题。
我正在用java创建一个Web服务,它提供了提供有关实体信息的工具,为此我计划构建一个缓存来保存所有信息,并为客户端提供他/她需要的缓存中的任何信息。所以我只需要在 web 服务启动时而不是在每个客户端请求上构建一次缓存。
我的问题是我应该在哪里构建缓存?
无论我读到什么,对于每个客户端调用都会调用构造函数,所以我应该在哪里添加缓存构建功能或其他替代方法。
我找到的答案之一是使用@stateless 来解决这个问题。
TechExchange为我的问题提供了一个很好的解决方案,但是由于我需要一个可以与我创建的现有基于soap的Web服务一起使用的解决方案,所以我创建了一个构建缓存并在Web服务开始时使用spring注入注入它的bean所以这个 bean 将构建缓存,客户端可以在所有请求上使用它。
根据网络服务器,缓存应放在网络服务器上方,称为反向代理
话说回来,
如果您正在构建一个 RESTful Web 服务,您可以利用大多数针对您的资源的 Http 相关缓存控件
如果您的服务是基于 Jax-WS 的,您可以构建一个缓存并通过您的数据访问通道填充它。这样任何数据检索/更新都会通过它并且(如果没有找到命中数据库,如果找到返回类型)有效地减少数据库命中。