沈超琦的博客

STAY HUNGRY,STAY FOOLISH

文章

使用注解@实现防止接口重复提交

实现逻辑 1.自定义防重复提交的注解和切面 2.在需要验证的接口上增加注解(一般是创建、修改的接口) 3.以每次调用的 用户唯一标识(userId或者sessionId或者token)+ 请求路径+参数 作为key,value任意值都可以,缓存起来(redis或本地缓存),并设置一个合适的缓存失效时间。 4.每次调用时根据key判断,缓存是否存在,存在则抛出异常或提示,不存在则执行业务逻辑 代码 防重复提交注解 ** package com.***.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * <p>Description: [防重复提交注解]</p > */ @Target(ElementType.METHOD) @Retention(Retention....

Stream和Lambda表达式最佳实践

1. Streams简介 今天要讲的Stream指的是java.util.stream包中的诸多类。Stream可以方便的将之前的结合类以转换为Stream并以流式方式进行处理,大大的简化了我们的编程,Stream包中,最核心的就是interface Stream 从上面的图中我们可以看到Stream继承自BaseStream。Stream中定义了很多非常实用的方法,比如filter,map,flatmap,forEach,reduce,collect等等。接下来我们将会逐一讲解。 1.1 创建Stream Stream的创建有很多方式,java引入Stream之后所有的集合类都添加了一个stream()方法,通过这个方法可以直接得到其对应的Stream。也可以通过Stream.of方法来创建: //Stream Creation String[] arr = new String[]{"a", "b", "c"}; Stream<String> stream = Arrays.stream(arr); stream = Stream.of("a", "b", "c");....

Effective JAVA -第一条:用静态工厂代替构造器

序:什么是静态工厂方法 在 Java 中,获得一个类实例最简单的方法就是使用 new 关键字,通过构造函数来实现对象的创建。 就像这样: Fragment fragment = new MyFragment(); // or Date date = new Date(); 不过在实际的开发中,我们经常还会见到另外一种获取类实例的方法: Fragment fragment = MyFragment.newIntance(); // or Calendar calendar = Calendar.getInstance(); // or Integer number = Integer.valueOf("3"); ↑ 像这样的:不通过 new,而是用一个静态方法来对外提供自身实例的方法,即为我们所说的 静态工厂方法(Static factory method)。 知识点:new 究竟做了什么? 简单来说:当我们使用 new 来构造一个新的类实例时,其实是告诉了 JVM 我需要一个新的实例。JVM 就会自动在内存中开辟一片空间,然后调用构造函数来初始化成员变量,最终把引用返回给调用....

Netty 那点事(一)概述

Netty 和 Mina 是 Java 世界非常知名的通讯框架。它们都出自同一个作者,Mina 诞生略早,属于 Apache 基金会,而 Netty 开始在 Jboss 名下,后来出来自立门户 netty.io。关于 Mina 已有 @FrankHui 的 Mina 系列文章,我正好最近也要做一些网络方面的开发,就研究一下 Netty 的源码,顺便分享出来了。 Netty 目前有两个分支:4.x 和 3.x。4.0 分支重写了很多东西,并对项目进行了分包,规模比较庞大,入手会困难一些,而 3.x 版本则已经被广泛使用。本系列文章针对 netty 3.7.0 final。3.x 和 4.0 的区别可以参考这篇文章:http://www.oschina.net/translate/netty-4-0-new-and-noteworthy?print。 起:Netty 是什么 大概用 Netty 的,无论新手还是老手,都知道它是一个 “网络通讯框架”。所谓框架,基本上都是一个作用:基于底层 API,提供更便捷的编程模型。那么 "通讯框架" 到底做了什么事情呢?回答这个问题并不太容易,我们不妨....

使用feignClient调用接口 报错Method has too many Body parameters]

1、报错 Method has to many Body parmeters ,feign多参数问题 1.1GET方式 错误写法 @RequestMapping(value="/test", method=RequestMethod.GET) Model test(final String name, final int age); 启动服务的时候,会报如下异常: Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract com.chhliu.springboot.restful.vo.User com.chhliu.springboot.restful.feignclient.UserFeignClient.findByUsername(java.lang.String,java.lang.String) 异常原因:当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面....

STAY HUNGRY,STAY FOOLISH

© 2021 沈超琦的博客

Powered by Bolo
Theme self-bolo-sakura by Mashiro
浏览 31158 文章 31 评论 5
浙ICP备18010929号

主题 | Theme