3.5 配置拦截器以及redis配置webConfig,添加拦截器
@Configurationpublic class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(apiIdempotentInterceptor()); } @Bean public ApiIdempotentInterceptor apiIdempotentInterceptor() { return new ApiIdempotentInterceptor(); }}
配置redis,使得中文可以正常传输
@Configurationpublic class RedisConfig { //自定义的redistemplate @Bean(name = "redisTemplate") public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){ //创建一个RedisTemplate对象,为了方便返回key为string,value为Object RedisTemplate<String,Object> template = new RedisTemplate<>(); template.setConnectionFactory(factory); //设置json序列化配置 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer(Object.class); ObjectMApper objectMapper=new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance); //string的序列化 StringRedisSerializer stringRedisSerializer=new StringRedisSerializer(); //key采用string的序列化方式 template.setKeySerializer(stringRedisSerializer); //value采用jackson的序列化方式 template.setValueSerializer(jackson2JsonRedisSerializer); //hashkey采用string的序列化方式 template.setHashKeySerializer(stringRedisSerializer); //hashvalue采用jackson的序列化方式 template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; }}
最后是controller
@RestController@RequestMapping("/token")public class TokenController { @Autowired private TokenService tokenService; @GetMapping public Response token(){ return tokenService.createToken(); } @PostMapping("checktoken") public Response checktoken(HttpServletRequest request){ return tokenService.checkToken(request); }}
(四)结果验证首先通过token接口创建一个token出来,此时redis中也存在了该token
![什么是接口的幂等性,如何实现接口幂等性?](http://img.jiangsulong.com/220423/05352A624-0.jpg)
文章插图
在jmeter中同时运行50个请求,我们可以观察到,只有第一个请求校验成功,后续的请求均提示请勿重复操作 。
![什么是接口的幂等性,如何实现接口幂等性?](http://img.jiangsulong.com/220423/0535261592-1.jpg)
文章插图
![什么是接口的幂等性,如何实现接口幂等性?](http://img.jiangsulong.com/220423/05352A4O-2.jpg)
文章插图
推荐阅读
- 薄荷凉茶的做法是什么,柠檬薄荷凉茶的做法
- 辨别白茶的方法有哪些,白茶的变质是什么
- 什么样的鞋底适合跑步呢
- 打篮球运动属于有氧运动吗
- 登山的好处有哪些
- 烤饼干吸油纸可以用什么代替 做饼干没有吸油纸拿什么代替
- 忘川风华录游戏什么时候出 忘川风华录哪里可以获取内测码
- 适合春天的运动有哪些
- 慢跑的心率是多少
- 脚臭了怎么办怎样去脚臭去除脚臭 什么办法可以去脚臭