自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萝卜&青菜的博客

把技术当做一种信仰

  • 博客(114)
  • 论坛 (2)
  • 收藏
  • 关注

原创 SpringCloud——五大组件详解

服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud Config一、业务场景介绍先来给大家说一个业务场景,假设咱们现在开发一个电商网站,要实现支付订单的功能,流程如下:创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”扣减相应的商品库存通知仓储中心,进行发货给用户的这次购物增加相应的积分针对上述流程,我们需要

2020-11-12 16:32:20 53 1

原创 Consumer、Supplier、Predicate与Function

一、ConsumerConsumer是一个消费型的接口,它接收一个????,然后对这个西瓜进行消费,连西瓜籽都不带留下的。先看Consumer接口的源码,有一个未实现的抽象方法,和一个默认方法(jdk1.8之后,接口里面可以有默认方法和静态方法)。@FunctionalInterfacepublic interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consume

2020-10-26 15:03:17 29

原创 Optional用法

创建一个Optional1、创建一个可以包含null的Optional Optional<String> optional = Optional.ofNullable(null);2、创建一个包含null的Optional Optional<Object> empty = Optional.empty();这两个代码的意思是一致的3、创建一个不能包含null的Optional Optional<String> optional = Op

2020-10-26 14:48:56 23

原创 IDEA 编译项目时内存溢出(Fatal error compiling: java.lang.OutOfMemoryError)

idea导入公司项目在编译生成swagger文件的时候,编译会很慢过很长时间后报内存溢出(Fatal error compiling: java.lang.OutOfMemoryError)File->Settings设置一下VM的参数。 -Xms258m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m...

2020-09-22 10:02:34 40

原创 idea中git的用户名修改

入职新公司用的电脑是之前同事用过的,idea登录了自己的git账号后来发现提交代码的时候都是之前同事的名字,这样感觉好奇怪,就上网百度了一下但是找了好久没找到,下面是修改命令记录一下。idea中git工具的用户名修改在Terminal中输入git config user.name获取当前的用户名修改用户名输入git config --global user.name “用户名”...

2020-09-04 17:08:02 63

原创 函数式编程——Java8

一、lambda表达式先po一个最经典的例子——线程public static void main(String[] args) { // Java7 new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 100; i++) { System.out.println(i); } } }).start(); // Ja

2020-08-25 14:57:38 52

原创 JPA和 QueryDSL入门

QueryDSL 使用实战引入 Maven 依赖<!--QueryDSL支持--><dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId> <scope>provided</scope></dependency><!--QueryDSL支持-->&

2020-07-31 16:57:00 92

原创 IDEA连接GitHub解决(incorrect credentials)

新入职公司用的电脑别人用过,怕麻烦就用idea集成之前别人用过的git。在用idea登录git时一直报 incorrect credentials 错误。这是因为之前弹出输入账户和密码时输错了,而且会一直默认错误的账户和密码,因此需要把之前输入的账户密码缓存删除。点击控制面板->用户账户->凭据管理器把这个凭据删除掉,再重新拉git项目,会弹出框让你重新输入账户和密码,正确输入后就可以了。...

2020-07-21 16:15:47 1520

原创 群头像生成(正方形、圆形)不限张数

项目写聊天功能的时候需要生成群头像,就研究了一下。先看效果活不多说,代码如下拿走即用。import javax.imageio.ImageIO;import java.awt.*;import java.awt.geom.AffineTransform;import java.awt.geom.Ellipse2D;import java.awt.image.AffineTransformOp;import java.awt.image.BufferedImage;import java.

2020-06-12 16:49:51 155

原创 HandlerInterceptor拦截器的使用 (4)—— 防重复提交

看本篇博客前应当先看完前面三篇,这一篇是基于前面三篇的知识点的整合。所以很多重复的代码这里就不写出了后台通过拦截器和redis实现防重复提交,避免因为网络原因导致多次请求同时进入业务系统,导致数据错乱,也可以防止对外暴露给第三方的接口在业务尚未处理完的情况下重复调用。首先引入fastjson<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&g

2020-05-16 15:03:50 172

原创 HandlerInterceptor拦截器的使用 (3)——多次获取请求参数body中的信息

现在开发的项目是基于SpringBoot的maven项目,拦截器的使用很多时候是必不可少的,当有需要需要你对body中的值进行校验,例如加密验签、防重复提交、内容校验等等。当你开开心心的在拦截器中通过request.getInputStream();获取到body中的信息后,你会发现你在controller中使用了@RequestBody注解获取参数报如下错误I/O error while reading input message; nested exception is java.io.IOExce

2020-05-16 14:57:38 449

原创 HandlerInterceptor拦截器的使用(2)—— 自定义注解

功能简介拦截所有添加了我们自定义的注解的方法,并将userId和userMobile放入HttpServletRequest,之后通过对应的注解取值。首先我们来先定义三个注解根据需求其实UserId和UserMobile可以不要,不影响拦截器的使用import javax.ws.rs.NameBinding;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang

2020-05-16 14:52:39 178

原创 HandlerInterceptor拦截器的使用(1)

HandlerInterceptor简介拦截器我想大家都并不陌生,最常用的登录拦截、或是权限校验、或是防重复提交、或是根据业务像12306去校验购票时间,总之可以去做很多的事情。1、定义实现类定义一个Interceptor 非常简单方式也有几种,我这里简单列举两种1、类要实现Spring 的HandlerInterceptor 接口2、类继承实现了HandlerInterceptor 接口的类,例如 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerIntercept

2020-05-16 14:42:49 129

原创 idea中git的冲突解决

1.什么是冲突冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。从上面对冲突的定义来看,冲突时发生在同一个文件上的。2.生产上冲突的场景常见冲突的生产场景如下更新代码提交代码多个分支代码合并到一个分支时多个分支向同一个远端分支推送代码时  git的合并中产生冲突的具体情况:  <1>两个开发者(分支中)修改了同一个文件(不管什么地方)  <2>两个开发者(分支中)修改了同一个文件的名称  注意:两个分支中分别修改了

2020-05-13 16:05:57 219

原创 Java 面试题看这些就够了

包含的模块本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM ,如下图所示:共包含 208 道面试题,本文的宗旨是为读者朋友...

2020-04-23 18:54:15 92

原创 List流式操作,排序、最大、最小值等各种操作工具类(java8 )

不废话直接上代码,亲测有效。import java.util.*;import java.util.stream.Collectors;import static java.util.stream.Collectors.*;public class listTest { public static void main(String[] args) { List...

2020-03-30 20:58:31 454 1

原创 普通索引和联合索引区别

通俗理解:利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对...

2020-03-13 21:18:12 432

原创 日期按、天、月、季度计算及格式化

最近开发的项目平凡用到时间的各种计算及转化,虽然没多少技术含量但也记录一下。直接上代码拿走不谢。import org.apache.http.client.utils.DateUtils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class...

2020-03-03 09:21:06 481

原创 2020年计划

时间2020年2月5号,在家办公的第三天。一场新型冠状肺炎疫情打破了全国多少人的计划。武汉封城,全国大部分人都躲在家不敢出门。从没有写过年度计划的我也想在这个特殊的年份开始过有计划的生活。每当回老家过完年之后自己的想法都会发生较大的改变,这样的改变我想应该无关对错但也会影响自己的生活轨迹。去年也就是19年回家过完年之后自己就产生一个比较强烈的想法——尽快回老家(昆明发展),后来应为工作职业...

2020-02-08 21:33:00 398 4

原创 BigDecimal运用总结

一、BigDecimal概述​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Fl...

2020-01-06 14:16:08 64

原创 mysql 向下无限递归(父级子级之间的关系)

新建测试数据表create table menu( id int auto_increment, name VARCHAR(255), parent_id int, PRIMARY KEY(id)) ENGINE=INNODB auto_increment=1 default charset = "utf8";插入测试数据insert into menu(...

2020-01-03 10:19:38 687

原创 Redis五大数据类型的常用操作

String(字符串)String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。String类型是Redis最基本的数据类型,一个键最大能存储512MB。Demo在以上Demo中我们使用了 Redis 的 SET 和...

2019-12-20 16:06:56 109

原创 java.lang.IllegalArgumentException:(springboot项目请求出现非法字符问题)

最近使用springboot搭建了一个后台服务的项目,开发接口的时候在本机使用postman工具做请求测试报如下错误:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986...

2019-11-05 18:07:31 4988 3

原创 springboot+redis

1. springboot中redis相关配置在pom中配置redis的相关依赖包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <ve...

2019-10-24 14:41:53 93

原创 linux 日志查看 常用命令

tail常用命令:tail -f filename (默认最后10行,相当于增加参数 -n 10)tail -100f test.log 实时监控100行日志tail -n 20 filename (显示filename最后20行)tail -n +5 filename (从第5行开始显示文件)head常用命令:跟tail是相反的,tail是看后多少行日志;例子如下:he...

2019-10-14 16:56:23 82

原创 SpringBoot整合ElasticSearch搜索引擎

准备工作安装ElasticSearch及ElasticSearch-head 可视化工具;具体过不做阐述程网上教程很多。Spring工程创建创建常规的springboot项目就行。注意在新建项目时记得勾选web和NoSQL中的Elasticsearch依赖,入下图项目自动生成以后pom.xml中会自动添加spring-boot-starter-data-elasticsearch的依赖...

2019-09-29 15:50:32 962

原创 Could not autowire. No beans of 'xxxx' type found

1.问题描述在Idea的spring工程里,经常会遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示。但程序的编译和运行都是没有问题的,这个错误提示并不会产生影响。但红色的错误提示在有些有强迫症的程序员眼里,多多少少有些不太舒服。2. 原因原因可能有两个,第一个是IntellijIDEA本身工具的问题。第二个便是我们导入@Se...

2019-09-24 10:47:41 119

原创 URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

经常会遇到xml报错的情况,xmlns变红色,虽然不影响项目运行但看着难受,这时我们可以根据如下来解决这个问题。1,问题如图2,解决办法3,结果就解决了...

2019-09-24 10:39:05 151

原创 springboot使用redistemplate操作redis

概述关于spring-redis关于redis的key设计redis的基本数据结构介绍redis与springboot的整合sringboot中的redistemplate的使用之前看了很多博客,大都都只是粗略的介绍,这里想要记录的全面一些,也算是一个学习的过程首发于我的个人博客:janti的个人博客关于spring-redisspring-data-redis针对jedis提供...

2019-09-18 18:42:39 157

原创 MYSQL的递归查询(实现子父节点多级显示)

众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。创建表格CREATE TABLE `treenodes` ( `id` int , -- 节点ID `nodename` varchar (60), -- 节点名称 `pid` ...

2019-08-27 15:07:15 3259 1

原创 JAVA——苹果IAP内购JAVA服务器验证

最近公司需要做这样一个功能,网上查了这方面的资料不是很多就记录一下, 对苹果iap内购稍微有些了解的JAVA开发人员, 认真看, 定能完美解决苹果内购问题.苹果IAP内购支付实际上是"将客户端支付后的一些信息传给后台, 后台拿着这些信息在传给苹果支付平台, 来验证客户端支付是否有效"的一个过程, 中间的难点有三个.一是沙盒测试数据和线上测试数据的问题. 刚开始接入苹果内购时,网上的各种...

2019-04-28 17:36:17 493

原创 linux Apache+Tomcat安装配置HTTPS SSL证书+http强制跳转HTTPS

配过ssl证书的都知道证书默认使用的端口是443,所以一条服务器配两个证书需要注意端口问题,重点如果修改端口后不行就尝试重启一下服务器,自己在这被坑了好长时间。正题:系统环境:Centos7Apache版本:Apache2.4.6(yum安装)Tomcat版本:8.5.30**(注意: 8.5以下版本配置方法不一样,不适用此方法)**1.申请免费的HTTPS SSL域名证书本人是在腾讯...

2019-04-28 17:22:27 929 1

原创 linux环境下搭建PHP运行环境

安装环境:Red Hat 4.8.2-16所需安装软件:ApachePHPmysql-server一 安装 Apache1 检查、删除、安装rpm -qa|grep httpd //检查是否安装apacherpm -e 包名 --nodeps //若有则删除 PS:我没有删除,直接用的服务器原来的。yum install httpd //安装,根据提示,输...

2019-04-18 18:04:14 1955

原创 Linux系统下安装jdk

第一种方法只需要一条命令就可以安装jdk:yum install java-1.8.0-openjdk* -y执行过这条命令无需配置,直接可以使用。第二种方法下载jdk8登录网址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html选择对应jdk版本下载。(可在Wind...

2019-04-18 17:38:43 60

原创 模糊查询——搜索结果按字段的权重排序

谈到搜索,一般就想起了SQL Server的FullTextSearch(全文搜索)功能,它确实强大,但使用起来也要做一些较为繁琐的准备工作,一般小型的项目或者对搜索要求(包括性能需求)不是很高的情况下实用它还是有点太重型了。简单的搜索用SQL查询即可,但一般面临的一个问题就是如何对搜索结果按匹配字段进行优先级排序。例如有个产品表(Products),它的字段包:括产品ID、产品名称、产品类别、...

2019-03-22 17:47:13 1491 3

转载 Java 12 新特性

Java 12 带来了一系列新特性:下边分别来看看:JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)Shenandoah:低暂停时间的 GC(实验性功能)新增了一个名为 Shenandoah 的 GC 算法,通过与正在运行的 Java 线程同时进行 evacuation 工作来减少 GC 暂停时间...

2019-03-20 10:33:17 172

原创 如何截取包含中文、Emoji表情的字符串

在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文、Emoji表情、以及一些特殊符号,这时使用String的substring()进行截取操作,结果就有可能是乱码或者不符合要求。这是因为JVM运行时使用UTF-16编码,对于普通的字符都是使用char类型存储(2个字节),而对于中文、emoji表情是用两个char存储(4个字节),substring是按照char截取的,就有可能只截取了半...

2019-03-06 17:51:41 757

原创 url——的各种操作

最近做公司项目是遇到一个问题。因为文本(字符串)中含有链接(url),需要对其进行过滤、替换、截取等操作。本人在网上找了好久也没发现比较靠谱和合适的。就自己整理了一些方法。虽然代码简单但仅为记录方便以后复用。代码如下: /** * 将url替换为空格 * * @param str * @return */ public static String urlReplace...

2019-03-01 15:23:38 254

原创 APP数据接口开发总结

刚接到这样的任务时,没有感觉到任何压力,不就是给移动端应用提供数据吗?那边发来参数,这边处理数据,返回JSON。做网站开发时经常使用ajax请求后台数据,不就是这么回事吗。于是,在确认完需求后就开始干了,很快,进入联调阶段,这个时候各种问题来了,忙得不可开交。吃一堑,长一智,项目结束后总结了下,大致分为以下几点:一、什么时候应该增加接口。一般一个页面不存在二次请求的需求时,使用一个接口,像一般...

2019-02-14 14:17:08 1059 2

转载 分页请求时,有新数据加入时,下一页会出现重复数据问题

公司业务发展迅速,用户量急剧上升中,偶尔会发现这么一个问题,就是下一页的数据中总会出现上一页的几条数据。具体表现就是注意4号和5号 第一页和第二页都出现的了这两人 为什么会造成这个问题呢?用户在查询第一页的时候,停留了一下,然后在这段时间内 又有两个用户注册了,然后请求第二页的数据的时候 排序的时候 两个新用户排在了最前面(按照注册时间排序) 所以导致4号和5号在第二次排序的时候就变成了第二页...

2019-01-25 17:06:02 1522 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除