自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进阶的球儿

2019开始爬坑之旅,改变 CSDN 里纯 copy 的坏风气,给大家提供可行的技术栈,共同进步!!!

  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 致敬

近期在忙各种事情,看源码,学习等等,暂停更新博客了。 忙完这段时间,就会把近期所有的学习源码的总结和笔记,分享出来,互相借鉴指点。 谢谢各位的赞和关注,希望在成长的道路上,彼此都是坚实的后盾力量,致敬!...

2021-04-26 11:46:14 156 1

原创 IDEA SpringBoot 源码环境搭建(Maven版本,建议用 Maven 版本的编译)

Hello,大家好,我是进阶的球儿,人称老马。本篇为大家讲解一下 SpringBoot (Maven版)源码环境搭建的步骤以及一点小心得。和Spring 源码环境搭建一样,肯定要先准备好开发环境的建设和 IDEA 的一些环境,下面就来详细的说道说道吧。。。第一步: 1、IDEA2020.1(2020版本的IDEA出来之后,尽量用2020版本的,有人会问为啥?因为。。。更香,哈哈哈) 2、java:1.8 3、gradle: gradle-6.6.1-al...

2021-01-12 17:30:18 2854

原创 IDEA Spring源码环境搭建

近期由于想看看Spring和SpringBoot源码,所以自己搭建了一下Spring和SpringBoot 源码环境,方便对源码的学习,今天分享出来,共同学习进步,踏上新的征程。本篇只说Spring源码环境的搭建,下一篇会讲解一下 SpringBoot 源码环境的搭建。第一步、先熟悉下搭建Spring源码环境需要的一些环境: 1、IDEA2020.1(2020版本的IDEA出来之后,尽量用2020版本的,有人会问为啥?因为。。。更香,哈哈哈) 2、java:1.8 ...

2020-12-22 09:01:37 467

原创 SeaweedFS 分布式 上传、下载、删除附件公共接口

这里就直接贴代码吧。引用jar包:net.anumbrella.seaweedfs.core.FileTemplate;一、SeaweedFS 上传附件接口 @Autowired private FileTemplate template; /** * @Description: 上传附件接口 * @Date: 2019/12/19...

2019-12-31 10:50:53 3966

原创 Seaweed 上传附件报空指针的解决办法

今天遇到 Seaweed 的一个bug,调用 FileTemplate 的 getFileStatus(String fileId)方法报 NullPointer 。由于之前未使用过分布式的文件服务器,看了小半天的时间,尝试了一些办法,终于找到了根本原因去解决。假设推理果然是屡试不爽啊。那我先贴上报空指针的代码(相信大家都会直接这样用,可能也会遇到我这种问题):1、上传附件 代码...

2019-12-25 10:52:18 729

原创 SpringAOP 注解方式实现

Spring 里需要学习的东西有很多,所以需要在实际工作中,包括私下里多去研究、验证,才能理解其中的意思,要不然很难去理解真正的含义。比如 Spring Bean、IOC、DI、AOP、声明式事务等等,很多,首先要知道怎么去运用,然后才是去看源码,学习源码的思想和实现思路。今天就说下 Spring AOP 注解方式的实现,其实也很简单。就像造房子,我们要清楚造房子的步骤,从打地基,到砌墙...

2019-11-11 17:24:21 148

原创 RedisTemplate 存取Hash类型的值

为了方便网关统计每天 api 访问网关的次数,这里写了一个方法来统计,并将统计数据存入 redis 服务器里,方便读取。今天讲的是两个方法,一个是存 HashMap 的方式,另外一个是存 Hash 的方式。一、存 Hash 的方式 使用的是redisTemplate.opsForHash().put(redisKey, item, value); 这个方法。 ...

2019-11-06 11:17:53 19102 6

原创 分布式单点登陆实现

今天简单说下,目前在做的项目中,SpringCloud gateway 网关中怎么实现单点登录的思路。做过分布式的应该都知道,要实现分布式,肯定要实现跨域,SpringCloud gateway 网关怎么实现跨域,在这一片文章已描述的比较清楚(https://blog.csdn.net/qq_39415129/article/details/100557172),如果不了解的可以先去看下...

2019-11-04 10:02:40 404 3

原创 SpringCloud gateway网关 集成 Hystrix 为某个服务设置熔断时间

鉴于对网关转发请求之后,访问各个服务有时间的要求,所以现在要在 geteway 网关中增加断路器,就是今天要说的 :Hystrix。先讲讲Hystrix 的用途: a)线程池隔离 b)信号量隔离 c)熔断 d)降级回退目的:针对网关的每个服务设置熔断时间。我们今天要讲的是熔断机制。对于断路器,可能大部分人都不是很...

2019-10-30 09:07:53 8028 7

原创 shiro的权限验证方法 doGetAuthorizationInfo 重复执行的解决办法

很简单,注释掉ShiroConfiguration 中的DefaultAdvisorAutoProxyCreator 即可。 /** * 加入下面2个 可以在controller层使用shiro注解 * 注释掉,解决权限验证多次循环的问题 * @return */// @Bean(name = "advisorAutoProxyCreat...

2019-10-10 20:50:22 2684 2

原创 SpringCloud 分布式集群解决 session 同步问题

做了SpringCloud 网关之后,发现 session 的同步是一个比较大的问题,如果解决不好,则对每台服务器的 session 处理起来比较麻烦。 如果是你的话,你会想,那直接存在 redis 服务器不就可以了吗?或者每次请求都返回给前端一个 session,前端每次请求都带上 session 不就可以实现同步了吗? 其实这样想总...

2019-10-10 09:51:51 1315

原创 SpringBoot 定时器任务(间隔n秒执行)

近期一个需求: 项目启动会将一张表中的数据存到 redis 服务器,但是要定时看下 redis 服务器是否依旧存在全量数据,如果 redis 服务器下不是全量数据,则重新将全量数据存入 redis 服务器。那这里首先考虑到的肯定是写个定时器。但是 SpringBoot 项目和 SpringMVC 项目的定时器写法不一致,之前写过一年关于 SpringMVC 项目定时器任务...

2019-09-30 15:46:32 2953

原创 SpringBoot 集成 Shiro 实现前后端分离

近期,工作需求也是涉及到 Shiro 权限的问题,而且目前项目是前后端分离的,所以要求做到实现前后端分离。作为一个攻城狮,自然不能推辞。 鉴于之前未接触过 SpringBoot 中 用 ShIro 做授权和认证,然后去各大网站上搜了一番,果然,还和以前一样,千篇一律,Copy的居多,而且即使 GitHub 上有 demo 的,下载之后也是跑步不起来,无计可施。...

2019-09-27 11:01:53 4869 4

原创 Spring Cloud gateway 跨域问题

1、在和axios联调鉴权的时候发现,在增加自定义header的时候会出现跨域问题2、因为是跨域请求,前端会首先发送一个options的嗅探请求,一次真正的请求所以会出现两个4033、网关之前设置的是全局filter刚开始看了package com.xxx.filter;import com.alibaba.fastjson.JSONObject;import com.x...

2019-09-06 09:48:18 2851 9

原创 SpringCloud 之 gateway 详解

大家周末愉快啊!!!今天趁加班忙完了,写一篇关于 SpringCloud 网关(geteway)的文章。简单说下需求: 1、转发请求 2、响应头可修改 3、实现跨域 4、兼容其他项目最近做的网关项目,分享出一个例子给大家,已上传至GitHub,可自行下载。亲,记得 fork 一下哦下载链接:https://git...

2019-08-31 15:35:36 2487 2

原创 Parameter 0 of method modifyRequestBodyGatewayFilterFactory in...

最近在自己搭建SpringCloud Gateway 项目,遇到这个启动报错:***************************APPLICATION FAILED TO START*************************** Description: Parameter 0 of method modifyRequestBodyGatewayFilterFact...

2019-08-28 14:05:43 4079 1

原创 Integer.getInteger() 和 Integer.valueOf ()的区别

刚才遇到一个很 NC 的bug,别人写的,哈哈。赶紧写了这篇博客,供大家参考,千万别犯这么低级的错误。Now,说下情况先之前代码的写法parentContrParam.setIsInternet(Integer.getInteger(groupListParam.getMacfilter()));一看也没什么问题啊,但是点进去看源码。public static Inte...

2019-08-15 17:20:55 1802

原创 Redis 简介

Redis的话,这东西其实说难很难,说简单也简单,想深入了解的话是比较难的,但是想用起来的话还算简单。如果是Redis 集群的话,还要考虑很多问题。今天讲一下 单机版 RedisRedis 其实就是:高性能键值对数据库A、支持的键值数据类型:1、字符串类型2、列表类型3、游戏集合类型4、散列类型5、集合类型B、Redis 的应用场景:1...

2019-08-15 16:06:27 118

原创 RabbitMQ 详解

今天闲来无事,复习了一早上,把 RabbitMQ 简单总结下,看着感觉能理解到精髓,请给个赞,多谢!!!Now,步入正题!1、什么是 MQ ?首先,你肯定会去百度什么是 RabbitMQ,了解下这个东西到底是啥个鬼?到底有啥子用?对吧?其实啊,大家都知道,MQ 都是用来做消息队列的,从字面意思上来看,本质是一个队列,FIFO 先入先出,只不过队列中存放的是 message(消息)而...

2019-08-15 12:55:31 331

原创 IDEA启动后页面没有tomcat server选项,显示灰色问号和红叉不能使用

大早上起来,打开我们炒鸡 NX 的 IDEA,发现 tomcat server 没了,拔凉拔凉的。这时候,想的简单点,就是 tomcat 的问题。说下步骤,以防后期再遇到这种问题,也给大家来个提示。打开左上角的 File --> settings --> 搜索 tomcat,然后将 Tomcat and TomEE Integration 打钩。然后 Appl...

2019-08-14 10:49:31 2833

原创 退出登陆获取不到 Session

这里要说的是,如果在退出登陆时,在sendRedirect 之后使用 SecurityUtils.getSubject().logout(); 会导致 session 清空,所以在返回退出成功页面时,获取不到 session 里的任何信息。 @RequestMapping(value = "/logout", method = RequestMethod.GET) @...

2019-08-13 11:53:35 992

原创 Shiro 中获取用户信息

先说下写本文的原因:现在有个bug:登陆时,Shiro 可以正常获取到用户信息,但是退出登陆时获取不到用户信息,从而无法实 现保存退出登陆的时间。很是头大,为什么获取不到,那我退出登陆时,要存相应的退出时间,要怎么办?肿么办?当时很急,又找不到可靠的解决方法。看博客看了一大堆,感觉对我来说,都没有任何的用处...

2019-08-13 11:26:13 2416 4

原创 动态代理机制

说到动态代理,有时候会在想,既然JDK里面有代理类,直接调用不就完事了吗?为什么还要学动态代理?但是项目中运行时环境是 JRE,那我们就需要自己去实现动态代理,那需要用什么实现动态代理呢?那就是InvocationHandler类。之前很苦恼,动态代理到底是个什么鬼玩意,但是了解之后理出来一点思路。请记住:动态代理只能代理接口!!!简单的说:如果你是马爸爸,需要找周杰伦做代言,但是...

2019-08-07 15:32:34 95

原创 Maven 项目在Intellij idea 里打开找不到依赖的包

这种情况还是偶尔会出现的,至少自己切换分支之后偶尔会遇到这种情况。这时候会在怀疑,代码报错了,是不是谁提交代码的时候提交错了?先别慌,先右击项目,选中maven,点击Reimport点击等待一小会儿,然后再点开报错的代码文件看下,咦?不报错了。这就很nice,其实不是代码写错了,可能是切换分支之后,代码更新速度没跟上节奏,导致引用项目的jar包没正常引入。我是进阶的球儿,大...

2019-08-07 12:44:11 8591 1

原创 git 命令详解

趁着今天没什么活,写一篇自己用Git的经历及常见的git命令。从最开始的做Java开始,就用Git版本控制工具,可能是习惯了用命令行,所以不太习惯用开发工具里的插件,还不如用命令行,简单易懂。同意的童鞋请举个手,哈哈。首先从下载Git说起吧,简单的下载,大家都懂的。1、下载链接:https://git-scm.com/downloads大家可以根据自己的配置进行下载Git版本。2...

2019-08-07 12:20:04 141

原创 什么是JVM ?

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。本文按照自己个人理解,去编写,如有需要修改的请下方留言。在写之前,需要先了解下两个问题:1、大家都知道 JVM 是跨平台的,但是想问下大家 C、C++ 是不是跨平台的?当然,答案是肯定的。因为...

2019-08-06 17:12:11 160

原创 Java 代码优化之 for 循环

常言道:细节决定成败。在开发过程中,很容易忽略一些细小的环节,导致系统运行效率的降低。看到下面的部分,很多人应该会很诧异A:what? 这都会影响运行效率?B:答案是:肯定的。从学Java开始,估计也有不少年了,简单的for循环肯定会写的。下面我们来看两段代码:int perSize = SnList.size() / threadNum;for (int i...

2019-08-06 14:05:43 424 1

原创 Java 中统计数据

作为Java开发,虽然不是很懂大数据,但是最起码的sql统计数量计算还是很常用的。下面来说下统计数据的一般sql写法,可以根据自己的情况去修改字段名称查询。举个例子:统计某个厂商的相对应的设备数量sql:a)无关联表:SELECT COUNT(1),a.厂商名字段 FROM 表名a GROUP BY a.厂商名字段b)有关联表SELECT COUNT(1),...

2019-07-29 11:36:59 4650

原创 SpringBoot 日志配置

Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。System_API项目的日志配置为例:整体架构...

2019-07-23 15:07:24 216

原创 MyBatis 打印 sql

SpringMvc 整合Mybatis打印sql语句:简单的来说,只需要在mybatis-config.xml 文件中 的 settings 里 配置下打印输出就可以了。代码如下:<setting name="logImpl" value="STDOUT_LOGGING" />SpringBoot整合Mybatis打印sql语句:如果使用的是app...

2019-07-23 15:00:58 2852

原创 IDEA 热部署

关于IDEA ,热部署极大的提高了程序猿的开发效率,不得不提。接下来就简单说说怎么部署的吧。首先,在这里先添加maven项目2、点击File -->Project Structure3、依次点击4、然后选中自己要启动的项目,点击ok即可。5、Edit Configration里,Deployment界面,添加exploded,Apply即可。...

2019-07-18 21:56:53 568

原创 Spring Boot 集成Redis实现缓存机制

实现步骤:1、新建maven项目2、在pom.xml 文件中添加响应的依赖包3、编写 Spring Boot 启动类4、配置 application.properties5、编写 RedisCacheConfig 配置类6、编写 DemoInfo 测试实体类7、编写DemoInfoRespository 持久化类8、编写DemoInfoService 类9、编写DemoInfo...

2019-07-17 15:16:15 201

原创 java 多线程提高大数据量的读写效率

对于多线程来说,刚开始是比较蒙的,不了解其中的运行机制。最近项目中需要用多线程解决一个加载缓慢的问题,特此写了一个例子,供大家参考,如有建议,请多指教,哈哈哈那么,话不多说。先说下需求:此接口供xxx公司调用,实现对数据库的读取和修改。而且是全量读取,不进行分页读取。(百万级别数据量)那就要考虑下,如果将数据分批进行处理,看下哪里运行时间相对较长,将哪部分代码进行多线程处理。注:程序员最...

2019-07-16 14:53:47 5272

原创 IDEA 配置详解

对于IDEA初级使用者来说,配置IDEA完全是很懵逼的一件事情,也是自己的亲身经历。在用过IDEA之后,Eclipse和STS简直弱爆了!但是对于版权问题,是个大问题,所以建议使用IDEA要看公司是否支持的情况下去使用。接下来,谈谈新建一个项目后IDEA的一些配置情况:在此之前,还要说下IDEA的前期配置情况,以便于快速开发。1、配置代码字体大小File -->Settings -...

2019-07-11 10:13:48 3972 2

原创 端口占用问题解决

本文以80端口号为例,如果想知道其他的端口号也可以使用此方法1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.这里主要是用到windows下的DOS工具,点击"开始"–“运行”,输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:>netstat -aon | findstr “80”Proto Local Address ...

2019-07-05 14:55:09 213

原创 Java上传日志至sftp服务器

本文是本人做项目中遇到的问题,其中有一些坑。欢迎查看与转载:1、引入SFTP jar包 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53&lt...

2019-07-05 14:50:11 598

转载 SpringBoot 总结

早上在轻轨上看到一篇讲解 SpringBoot 非常不错的文章,特此分享出来,共同学习。对SpringBoot研究比较深入的可以略过。说明:前面有 4 个小节关于Spring的基础知识分别是:IoC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解它们占据了本文的大部分内容:虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系.

2020-10-22 10:10:44 136

转载 Redis的击穿和雪崩

有时候被问到Redis 击穿和雪崩,啥?瞬间一脸懵逼。。。今天看到一篇讲解的很透彻、细致的博文,看了受益良多,特此也分享给各位码农盆友。原文地址:https://mp.weixin.qq.com/s/XZiC3Lq43FgJOtfp0K9wGg主要讲的问题: 缓存能大幅度提高系统性能,也能大幅度提高系统瘫痪几率 怎么样防止缓存系统被穿透? 缓存的雪崩是不是可以完全避免? 在一个面临高并发系统中,缓存几乎成了每个架构师应对高流量的首冲解决方案,...

2020-09-28 11:43:37 155

原创 SpringBoot 定时器任务(注解方式)

package com.xxx.xxx.xxx.service.task;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.scheduli.

2020-05-14 11:27:52 638

原创 SpringCloud 基于 Hint 算法分片策略分库

添加 aop 、sharding-jdbc 依赖 <!--aop-> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> &

2020-05-14 11:17:24 1760

RabbitMQ 代码案例

代码写的是关于 RabbitMQ学习中的一些演示,对于刚接触 RabbitMQ的学者来说,当做一个示例

2019-08-15

空空如也

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

TA关注的人

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