
java
文章平均质量分 64
palm down
这个作者很懒,什么都没留下…
展开
-
使用@JsonProperty注解导致FeignClient调用获取不到参数
使用@JsonProperty注解导致FeignClient调用获取不到参数原创 2022-09-26 11:45:05 · 1598 阅读 · 0 评论 -
restTemplate自定义状态400码
解决restTemplate接收状态码与系统错误码相同问题原创 2022-09-21 15:27:35 · 560 阅读 · 0 评论 -
java实现sftp的上传下载
java sftp操作文件原创 2022-04-06 21:52:25 · 2302 阅读 · 2 评论 -
解决maven循环依赖
maven 循环依赖排查处理原创 2022-03-22 10:33:10 · 11401 阅读 · 0 评论 -
使用restTemplate进行http接口调用
restTemplate是spring封装的http请求调用模板原创 2022-02-25 15:25:19 · 2440 阅读 · 0 评论 -
restTemplate模拟浏览器登录携带cookie请求接口
通过restTemplate模拟浏览器登录并携带cookie请求接口查看网页cookie通过网页调试,可以发现cookie在登录接口返回的response header里面知道cookie的返回方式和位置之后,我们就可以通过代码模拟浏览器登录并获取cookie通过restTemplate登录并获取cookie public void testLogin() { HttpHeaders headers = new HttpHeaders(); header原创 2022-01-12 14:15:25 · 8333 阅读 · 0 评论 -
基于BeanUtils的实现对集合复制功能
/** * @author liouwb */public class BeanListUtils extends BeanUtils { /** * 转换对象 list * * @param sources 源对象list * @param targetSupplier 目标对象供应方 new * @param <S> 源对象类型 * @param <T>原创 2021-11-19 08:13:12 · 3524 阅读 · 0 评论 -
springboot基于RequestBodyAdvice和ResponseBodyAdvice实现请求和返回加解密
RequestBodyAdvice我们看下RequestBodyAdvice的源码/** * Allows customizing the request before its body is read and converted into an * Object and also allows for processing of the resulting Object before it is * passed into a controller method as an {@code .原创 2021-10-25 10:01:52 · 864 阅读 · 0 评论 -
生成小程序二维码
java生成小程序二维码官方文档地址官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.htmlwxacode.get,生成二维码数量有限制wxacode.getUnlimited没有二维码数量没有限制,但是路径长度有限制步骤一,获取access_token /** * 获取微信 access_token * *原创 2021-10-23 10:52:04 · 1240 阅读 · 0 评论 -
java stream流 API
stream 分为操作符操作符描述map把stream中的元素映射成新的元素输出flatmap把多个流连接成一个流limit限流操作,比如去流中的前两个数据distint去重操作filter过滤操作peek跳出操作skip跳过操作,跳过某些元素sorted(unordered) 排序操作,对元素排序,前提是实现Comparable接口,当然也可以自定义比较器map() 把stream中的元素映射成新的元素输出代码演示原创 2021-04-27 21:41:30 · 232 阅读 · 1 评论 -
java8 lamdba表达式
概念Lambda 表达式(lambda expression)是一个匿名函数Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁使用lambda的前置条件Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法语法(T param)->{方法体}参数类型可以省略,如果方法体只有一行,大括号也可以省略param->expressionLambda 表达式实例无参数,方法体只有一行// 无参数,返回0()->0原创 2021-04-25 22:09:34 · 199 阅读 · 0 评论 -
springboot项目mybatis plus使用枚举字典
mybatis plus 枚举类型添加mybatis-plus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.versi原创 2021-04-06 10:08:57 · 2010 阅读 · 0 评论 -
验证邮箱是否存在
通过socket、smtp验证邮箱是否存在验证邮箱代码 /** * socket验证 * * @param mail 邮箱 * @return */ private static Boolean smtpVerify(String mail) { Socket socket = null; boolean valid; BufferedReader reader = null;原创 2020-11-13 19:55:13 · 2666 阅读 · 1 评论 -
识别邮箱类型
识别邮箱常见的邮箱类型DNS交换记录获取邮箱域名在DNS的交换记录 /** * 获取dns mx记录 * 验证是否是邮件服务器 * * @param hostName * @return * @throws NamingException */ private static List<String> getDnsMX(String hostName) throws NamingException {原创 2020-11-13 19:55:29 · 2236 阅读 · 0 评论 -
springboot自动配置原理
启动类package com.liouwb.springbootdemo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * @author liouwb */@SpringBootApplicationpublic class SpringbootDemoApplication {原创 2020-11-11 20:35:39 · 155 阅读 · 2 评论 -
springboot集成mybatis-plus
官网https://baomidou.com/一、添加依赖 <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.0</version> </dependency> <depend.原创 2020-11-06 13:06:18 · 346 阅读 · 1 评论 -
springboot项目入门
springboot项目入门springboot概念Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.官方网站:https://spring.io/projects/spring-boot构建项目方式一、在线构建项目构建springboot项目在线构建地址:https://start.spring.io原创 2020-11-05 12:45:36 · 143 阅读 · 0 评论 -
springboot集成knife4j(swagger2)
springboot集成knife4j(swagger2)一、在maven pom.xml文件中添加knife4j依赖方式一、添加knife4j-starter只需要添加一个即可 <!--knife4j--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId&原创 2020-11-04 09:22:42 · 1392 阅读 · 0 评论 -
springboot使用validator参数校验
pom.xml文件添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>在请求实体类在校验绑定import io.swagger.annotations.ApiModelProperty;import原创 2020-11-03 17:57:09 · 551 阅读 · 0 评论 -
设计模式-单例模式
反射花式破坏单例懒汉式反射破坏单例代码演示:package singleton;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;/** * @author liouwb * 单例模式 * 懒汉式 */public class SingletonLazyTest { public static void main(String[] args) t原创 2020-10-22 17:18:03 · 233 阅读 · 0 评论 -
单例模式
定义单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式特点单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例...原创 2020-10-22 08:51:40 · 197 阅读 · 3 评论 -
java 开发环境准备
文章目录java开发环境搭建安装jdkmaven安装安装gitIDE安装java开发环境搭建安装jdk去oracle官方下载相应的jdk版本,下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html双击下载的jdk进行安装安装完jdk之后进行环境变量配置 我的电脑右键->属性->高级系统设置->环境变量新建系统变量 JAVA_HOME把JAVA_HOME添加到pat原创 2020-10-13 14:15:45 · 192 阅读 · 0 评论 -
解决maven依赖冲突
解决maven jar版本冲突原创 2020-09-22 15:07:12 · 2874 阅读 · 0 评论 -
数据结构-链表
概念链表 [Linked List]:链表是由一组不必相连【不必相连:可以连续也可以不连续】的内存结构 【节点】,按特定的顺序链接在一起的抽象数据类型。分类:单向链表双向链表循环链表单项链表链表是有序列表,在内存中的存储实行如下图:链表的结构特点链表是以节点的方式来存储的每个节点都包含了data域(存放数据),next域指向下一个节点链表的存储空间不是连续的链表分为有头节点的和没有头节点的java代码实现单向链表先定义链表节点类 /**原创 2020-09-03 22:40:25 · 129 阅读 · 1 评论 -
数据结构-队列
文章目录概念使用数组表示队列使用数组实现上面的队列代码:环形队列判断环形队列满的方式使用数组实现环形队列代码概念队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。使用数组表示队列上图是队列中依次添加0 1 2三个元素front是队列的第一元素的前一个位置rear是队列中的最后一个元素的位置当fro原创 2020-09-03 16:24:58 · 140 阅读 · 0 评论 -
稀疏数组
概念:如果一个数组(包括多维数组)中的大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,节约空间。一般来说,稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的数值。把具有不同值的元素的行列及记录在一个小规模的数组中,从而缩小程序的规模。例子:下面是一个11*11的棋盘二维数组表示棋盘黑棋使用1表示,2表示蓝棋二维数组代码/** * @author liouwb * 稀疏数组 * 五子棋棋盘表示 */public class Sp原创 2020-08-27 18:21:38 · 183 阅读 · 0 评论 -
冒泡排序
文章目录概念定义原理:动图演示:代码示例上面遍历的输出结果可以看出,第五次遍历之后排序已经完成,后面的遍历都是无效的遍历优化排序优化后代码(标识位)输出结果(标志位):优化结果概念定义冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成原理:比较相邻的元素。如果第一个比第二个原创 2020-08-11 12:22:50 · 183 阅读 · 0 评论 -
责任链模式
文章目录责任链模式概念:使用场景代码演示抽象出来面试官类面试环节实现类面试环节链定义应聘者和面试结果面试环节执行结果:优点:责任链模式概念:责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。使用场景hr筛选简历 -> 技术主管 -> 技术总监二面 ->原创 2020-07-30 13:28:14 · 145 阅读 · 0 评论 -
Java 8 函数式接口 (lamdba表达式)
函数式接口接口定义函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口都可以使用lamdba表示定义函数式接口,使用@FunctionalInterface 注解定义函数式接口如下:/** * @author liouwb */@FunctionalInterfacepublic interface MyFun { void sayHello(String param);}上原创 2020-07-27 13:55:00 · 117 阅读 · 0 评论 -
java中map的常见遍历方式
文章目录map的遍历方式初始化集合forEach遍历1.1、通过forEach遍历map entrySet1.2、forEach遍历keyValues1.3 forEach values遍历Iterator遍历2.1 Iterator entry遍历2.2 Tterator key遍历2.3 Iterator value遍历lambda遍历map的遍历方式初始化集合 /** * 初始化map集合 * * @return map集合 */ priv原创 2020-07-27 13:37:21 · 337 阅读 · 0 评论 -
自定义注解
注解注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有的新特性自定义注解/** * target 注解作用域 * retention 注解的生命周期 */@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRU原创 2020-07-12 10:15:45 · 98 阅读 · 0 评论 -
使用socket (telnet)发送邮件
文章目录使用socket (telnet)发送邮件一、连接邮件服务器二、打招呼三、登录四、命令中指定的地址是发件人地址五、标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面六、添加邮件内容七、退出使用socket (telnet)发送邮件一、连接邮件服务器$ telnet smtp.qq.com 25成功返回:220 smtp.qq.com Esmtp QQ Mail Server二、打招呼$ helo haha返回:250 smtp.qq.com三、登录原创 2020-07-12 10:13:23 · 413 阅读 · 0 评论 -
Integer值比较问题
java中integer值比较问题-128到127范围内可以使用==比较integer类源码integer类源码,存在缓存原创 2020-07-12 10:12:50 · 114 阅读 · 0 评论 -
String比较问题
java String判断问题原创 2020-07-12 10:12:37 · 114 阅读 · 0 评论 -
常见异常和处理方式
文章目录开发中如何避免runtime 异常空指针异常数组下标越界数学运算异常数字格式异常异常处理思路:开发中如何避免runtime 异常如何在开发中避免bug,示例是java代码空指针异常java.lang.NullPointerException:空指针产生的原因:使用对象(字段/方法)值为null代码示例:避免空指针代码实例:equals避免空指针:数组下标越界ArrayIndexOutOfBoundsException :数组下标越界产生的原因:使用超出数组下标范围的原创 2020-07-12 10:12:25 · 258 阅读 · 0 评论 -
java使用socket发送邮件
java使用socket发送邮件package com.abke.email.utils;import java.io.*;import java.net.Socket;/** * @author liouwb */public class SendMailUtil { public static void main(String[] arg) { String email = "liou@163.com"; sendMail(email,"smt原创 2020-07-11 23:43:02 · 825 阅读 · 0 评论 -
java socket
socket serverpackage com.abke.crm.sns.service;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * @author liouwb */publi原创 2020-07-11 23:38:44 · 122 阅读 · 0 评论 -
自定义注解token防止表单重复提交
防止表单重复提交自定义注解package com.abke.pay.config.annotation;import java.lang.annotation.*;/** * @author liouwb */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface RequestToken { boolean create() default fals原创 2020-07-11 23:37:32 · 323 阅读 · 0 评论