小编Igo*_*orA的帖子

无法获得通用的ResponseEntity <T>,其中T是泛型类"SomeClass <SomeGenericType>"

请帮我弄一个ResponseEntity<T>地方T本身就是一个泛型类型.正如我现在所看到的,现在春天RestTemplate不支持这个.我正在使用Spring MVC 3.1.2版

这是我想要使用的代码:代码:

ResponseEntity<CisResponse<CisResponseEntity>> res =
         this.restTemplate.postForEntity(
             this.rootURL, myRequestObj, CisResponse.class);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Type mismatch: cannot convert from ResponseEntity<CisResponse> to
ResponseEntity<CisResponse<CisResponseEntity>>
Run Code Online (Sandbox Code Playgroud)

这是明显的错误,但我今天如何解决它?

比我想要获得我的通用响应类型:

CisResponse<CisResponseEntity> myResponse= res.getBody();
CisResponseEntity entity = myResponse.getEntityFromResponse();
Run Code Online (Sandbox Code Playgroud)

现在,我使用这个解决方案,postForObject()而不是postForEntity():

CisResponse<CisResponseEntity> response = 
          this.restTemplate.postForObject(
               this.rootURL,myRequestObj, CisResponse.class);
Run Code Online (Sandbox Code Playgroud)

java generics rest spring spring-mvc

22
推荐指数
1
解决办法
2万
查看次数

使用Hazelcast而不是MongoDB来存储用户会话/密钥有什么好处?

我们正在运行mongodb实例来存储集合中的数据,没有问题,mongo是我们的主要数据存储.

今天,我们将为产品开发Oauth2支持,并且必须存储用户会话(安全密钥,访问令牌等等),并且只有在定义的超时后才能对身份验证服务器验证访问令牌,以便不每个请求都将等待验证服务器的验证.应始终针对身份验证服务器对安全资源(create)的第一个请求进行身份验证.任何后续请求都将在内部进行验证(缓存)并检查内部超时,并且只有在过期时才会发出对验证服务器的另一个请求.

为了解决这些要求,我们必须引入某种分布式缓存,存储(使用TTL支持)用户会话等,基于ttl ... .i写了关于上面的内容.

这里有两个选择:

  1. 在hazelcast中存储用户会话并在所有App服务器上共享它 - 不错的选择,在驱逐地图中保留所有用户会话.
  2. 在MongoDb中存储用户会话 - 并执行相同的操作.

您是否看到使用Hazelcast而不是将临时数据存储在Mongo中的任何好处?您知道的任何重大性能改进?

我是Hazelcast的新手,因此不了解所有杀手级功能.

java spring caching mongodb hazelcast

6
推荐指数
1
解决办法
3920
查看次数

标签 统计

java ×2

spring ×2

caching ×1

generics ×1

hazelcast ×1

mongodb ×1

rest ×1

spring-mvc ×1