- 博客(54)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 致敬
近期在忙各种事情,看源码,学习等等,暂停更新博客了。 忙完这段时间,就会把近期所有的学习源码的总结和笔记,分享出来,互相借鉴指点。 谢谢各位的赞和关注,希望在成长的道路上,彼此都是坚实的后盾力量,致敬!...
2021-04-26 11:46:14
185
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
2914
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
482
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SeaweedFS 分布式 上传、下载、删除附件公共接口
这里就直接贴代码吧。引用jar包:net.anumbrella.seaweedfs.core.FileTemplate;一、SeaweedFS 上传附件接口 @Autowired private FileTemplate template; /** * @Description: 上传附件接口 * @Date: 2019/12/19...
2019-12-31 10:50:53
4110
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Seaweed 上传附件报空指针的解决办法
今天遇到 Seaweed 的一个bug,调用 FileTemplate 的 getFileStatus(String fileId)方法报 NullPointer 。由于之前未使用过分布式的文件服务器,看了小半天的时间,尝试了一些办法,终于找到了根本原因去解决。假设推理果然是屡试不爽啊。那我先贴上报空指针的代码(相信大家都会直接这样用,可能也会遇到我这种问题):1、上传附件 代码...
2019-12-25 10:52:18
755
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringAOP 注解方式实现
Spring 里需要学习的东西有很多,所以需要在实际工作中,包括私下里多去研究、验证,才能理解其中的意思,要不然很难去理解真正的含义。比如 Spring Bean、IOC、DI、AOP、声明式事务等等,很多,首先要知道怎么去运用,然后才是去看源码,学习源码的思想和实现思路。今天就说下 Spring AOP 注解方式的实现,其实也很简单。就像造房子,我们要清楚造房子的步骤,从打地基,到砌墙...
2019-11-11 17:24:21
157
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RedisTemplate 存取Hash类型的值
为了方便网关统计每天 api 访问网关的次数,这里写了一个方法来统计,并将统计数据存入 redis 服务器里,方便读取。今天讲的是两个方法,一个是存 HashMap 的方式,另外一个是存 Hash 的方式。一、存 Hash 的方式 使用的是redisTemplate.opsForHash().put(redisKey, item, value); 这个方法。 ...
2019-11-06 11:17:53
19241
6
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 分布式单点登陆实现
今天简单说下,目前在做的项目中,SpringCloud gateway 网关中怎么实现单点登录的思路。做过分布式的应该都知道,要实现分布式,肯定要实现跨域,SpringCloud gateway 网关怎么实现跨域,在这一片文章已描述的比较清楚(https://blog.csdn.net/qq_39415129/article/details/100557172),如果不了解的可以先去看下...
2019-11-04 10:02:40
438
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringCloud gateway网关 集成 Hystrix 为某个服务设置熔断时间
鉴于对网关转发请求之后,访问各个服务有时间的要求,所以现在要在 geteway 网关中增加断路器,就是今天要说的 :Hystrix。先讲讲Hystrix 的用途: a)线程池隔离 b)信号量隔离 c)熔断 d)降级回退目的:针对网关的每个服务设置熔断时间。我们今天要讲的是熔断机制。对于断路器,可能大部分人都不是很...
2019-10-30 09:07:53
8092
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 shiro的权限验证方法 doGetAuthorizationInfo 重复执行的解决办法
很简单,注释掉ShiroConfiguration 中的DefaultAdvisorAutoProxyCreator 即可。 /** * 加入下面2个 可以在controller层使用shiro注解 * 注释掉,解决权限验证多次循环的问题 * @return */// @Bean(name = "advisorAutoProxyCreat...
2019-10-10 20:50:22
2774
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringCloud 分布式集群解决 session 同步问题
做了SpringCloud 网关之后,发现 session 的同步是一个比较大的问题,如果解决不好,则对每台服务器的 session 处理起来比较麻烦。 如果是你的话,你会想,那直接存在 redis 服务器不就可以了吗?或者每次请求都返回给前端一个 session,前端每次请求都带上 session 不就可以实现同步了吗? 其实这样想总...
2019-10-10 09:51:51
1338
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot 定时器任务(间隔n秒执行)
近期一个需求: 项目启动会将一张表中的数据存到 redis 服务器,但是要定时看下 redis 服务器是否依旧存在全量数据,如果 redis 服务器下不是全量数据,则重新将全量数据存入 redis 服务器。那这里首先考虑到的肯定是写个定时器。但是 SpringBoot 项目和 SpringMVC 项目的定时器写法不一致,之前写过一年关于 SpringMVC 项目定时器任务...
2019-09-30 15:46:32
2989
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot 集成 Shiro 实现前后端分离
近期,工作需求也是涉及到 Shiro 权限的问题,而且目前项目是前后端分离的,所以要求做到实现前后端分离。作为一个攻城狮,自然不能推辞。 鉴于之前未接触过 SpringBoot 中 用 ShIro 做授权和认证,然后去各大网站上搜了一番,果然,还和以前一样,千篇一律,Copy的居多,而且即使 GitHub 上有 demo 的,下载之后也是跑步不起来,无计可施。...
2019-09-27 11:01:53
4897
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
2889
9
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringCloud 之 gateway 详解
大家周末愉快啊!!!今天趁加班忙完了,写一篇关于 SpringCloud 网关(geteway)的文章。简单说下需求: 1、转发请求 2、响应头可修改 3、实现跨域 4、兼容其他项目最近做的网关项目,分享出一个例子给大家,已上传至GitHub,可自行下载。亲,记得 fork 一下哦下载链接:https://git...
2019-08-31 15:35:36
2511
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Parameter 0 of method modifyRequestBodyGatewayFilterFactory in...
最近在自己搭建SpringCloud Gateway 项目,遇到这个启动报错:***************************APPLICATION FAILED TO START*************************** Description: Parameter 0 of method modifyRequestBodyGatewayFilterFact...
2019-08-28 14:05:43
4214
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Integer.getInteger() 和 Integer.valueOf ()的区别
刚才遇到一个很 NC 的bug,别人写的,哈哈。赶紧写了这篇博客,供大家参考,千万别犯这么低级的错误。Now,说下情况先之前代码的写法parentContrParam.setIsInternet(Integer.getInteger(groupListParam.getMacfilter()));一看也没什么问题啊,但是点进去看源码。public static Inte...
2019-08-15 17:20:55
1832
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Redis 简介
Redis的话,这东西其实说难很难,说简单也简单,想深入了解的话是比较难的,但是想用起来的话还算简单。如果是Redis 集群的话,还要考虑很多问题。今天讲一下 单机版 RedisRedis 其实就是:高性能键值对数据库A、支持的键值数据类型:1、字符串类型2、列表类型3、游戏集合类型4、散列类型5、集合类型B、Redis 的应用场景:1...
2019-08-15 16:06:27
138
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RabbitMQ 详解
今天闲来无事,复习了一早上,把 RabbitMQ 简单总结下,看着感觉能理解到精髓,请给个赞,多谢!!!Now,步入正题!1、什么是 MQ ?首先,你肯定会去百度什么是 RabbitMQ,了解下这个东西到底是啥个鬼?到底有啥子用?对吧?其实啊,大家都知道,MQ 都是用来做消息队列的,从字面意思上来看,本质是一个队列,FIFO 先入先出,只不过队列中存放的是 message(消息)而...
2019-08-15 12:55:31
350
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IDEA启动后页面没有tomcat server选项,显示灰色问号和红叉不能使用
大早上起来,打开我们炒鸡 NX 的 IDEA,发现 tomcat server 没了,拔凉拔凉的。这时候,想的简单点,就是 tomcat 的问题。说下步骤,以防后期再遇到这种问题,也给大家来个提示。打开左上角的 File --> settings --> 搜索 tomcat,然后将 Tomcat and TomEE Integration 打钩。然后 Appl...
2019-08-14 10:49:31
2878
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 退出登陆获取不到 Session
这里要说的是,如果在退出登陆时,在sendRedirect 之后使用 SecurityUtils.getSubject().logout(); 会导致 session 清空,所以在返回退出成功页面时,获取不到 session 里的任何信息。 @RequestMapping(value = "/logout", method = RequestMethod.GET) @...
2019-08-13 11:53:35
1069
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Shiro 中获取用户信息
先说下写本文的原因:现在有个bug:登陆时,Shiro 可以正常获取到用户信息,但是退出登陆时获取不到用户信息,从而无法实 现保存退出登陆的时间。很是头大,为什么获取不到,那我退出登陆时,要存相应的退出时间,要怎么办?肿么办?当时很急,又找不到可靠的解决方法。看博客看了一大堆,感觉对我来说,都没有任何的用处...
2019-08-13 11:26:13
2431
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 动态代理机制
说到动态代理,有时候会在想,既然JDK里面有代理类,直接调用不就完事了吗?为什么还要学动态代理?但是项目中运行时环境是 JRE,那我们就需要自己去实现动态代理,那需要用什么实现动态代理呢?那就是InvocationHandler类。之前很苦恼,动态代理到底是个什么鬼玩意,但是了解之后理出来一点思路。请记住:动态代理只能代理接口!!!简单的说:如果你是马爸爸,需要找周杰伦做代言,但是...
2019-08-07 15:32:34
103
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Maven 项目在Intellij idea 里打开找不到依赖的包
这种情况还是偶尔会出现的,至少自己切换分支之后偶尔会遇到这种情况。这时候会在怀疑,代码报错了,是不是谁提交代码的时候提交错了?先别慌,先右击项目,选中maven,点击Reimport点击等待一小会儿,然后再点开报错的代码文件看下,咦?不报错了。这就很nice,其实不是代码写错了,可能是切换分支之后,代码更新速度没跟上节奏,导致引用项目的jar包没正常引入。我是进阶的球儿,大...
2019-08-07 12:44:11
8626
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 git 命令详解
趁着今天没什么活,写一篇自己用Git的经历及常见的git命令。从最开始的做Java开始,就用Git版本控制工具,可能是习惯了用命令行,所以不太习惯用开发工具里的插件,还不如用命令行,简单易懂。同意的童鞋请举个手,哈哈。首先从下载Git说起吧,简单的下载,大家都懂的。1、下载链接:https://git-scm.com/downloads大家可以根据自己的配置进行下载Git版本。2...
2019-08-07 12:20:04
159
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 什么是JVM ?
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。本文按照自己个人理解,去编写,如有需要修改的请下方留言。在写之前,需要先了解下两个问题:1、大家都知道 JVM 是跨平台的,但是想问下大家 C、C++ 是不是跨平台的?当然,答案是肯定的。因为...
2019-08-06 17:12:11
168
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java 代码优化之 for 循环
常言道:细节决定成败。在开发过程中,很容易忽略一些细小的环节,导致系统运行效率的降低。看到下面的部分,很多人应该会很诧异A:what? 这都会影响运行效率?B:答案是:肯定的。从学Java开始,估计也有不少年了,简单的for循环肯定会写的。下面我们来看两段代码:int perSize = SnList.size() / threadNum;for (int i...
2019-08-06 14:05:43
447
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
4690
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot 日志配置
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。System_API项目的日志配置为例:整体架构...
2019-07-23 15:07:24
236
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
2873
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IDEA 热部署
关于IDEA ,热部署极大的提高了程序猿的开发效率,不得不提。接下来就简单说说怎么部署的吧。首先,在这里先添加maven项目2、点击File -->Project Structure3、依次点击4、然后选中自己要启动的项目,点击ok即可。5、Edit Configration里,Deployment界面,添加exploded,Apply即可。...
2019-07-18 21:56:53
587
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
212
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java 多线程提高大数据量的读写效率
对于多线程来说,刚开始是比较蒙的,不了解其中的运行机制。最近项目中需要用多线程解决一个加载缓慢的问题,特此写了一个例子,供大家参考,如有建议,请多指教,哈哈哈那么,话不多说。先说下需求:此接口供xxx公司调用,实现对数据库的读取和修改。而且是全量读取,不进行分页读取。(百万级别数据量)那就要考虑下,如果将数据分批进行处理,看下哪里运行时间相对较长,将哪部分代码进行多线程处理。注:程序员最...
2019-07-16 14:53:47
5345
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IDEA 配置详解
对于IDEA初级使用者来说,配置IDEA完全是很懵逼的一件事情,也是自己的亲身经历。在用过IDEA之后,Eclipse和STS简直弱爆了!但是对于版权问题,是个大问题,所以建议使用IDEA要看公司是否支持的情况下去使用。接下来,谈谈新建一个项目后IDEA的一些配置情况:在此之前,还要说下IDEA的前期配置情况,以便于快速开发。1、配置代码字体大小File -->Settings -...
2019-07-11 10:13:48
4007
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 端口占用问题解决
本文以80端口号为例,如果想知道其他的端口号也可以使用此方法1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.这里主要是用到windows下的DOS工具,点击"开始"–“运行”,输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:>netstat -aon | findstr “80”Proto Local Address ...
2019-07-05 14:55:09
223
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java上传日志至sftp服务器
本文是本人做项目中遇到的问题,其中有一些坑。欢迎查看与转载:1、引入SFTP jar包 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53<...
2019-07-05 14:50:11
628
转载 SpringBoot 总结
早上在轻轨上看到一篇讲解 SpringBoot 非常不错的文章,特此分享出来,共同学习。对SpringBoot研究比较深入的可以略过。说明:前面有 4 个小节关于Spring的基础知识分别是:IoC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解它们占据了本文的大部分内容:虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系.
2020-10-22 10:10:44
155
转载 Redis的击穿和雪崩
有时候被问到Redis 击穿和雪崩,啥?瞬间一脸懵逼。。。今天看到一篇讲解的很透彻、细致的博文,看了受益良多,特此也分享给各位码农盆友。原文地址:https://mp.weixin.qq.com/s/XZiC3Lq43FgJOtfp0K9wGg主要讲的问题: 缓存能大幅度提高系统性能,也能大幅度提高系统瘫痪几率 怎么样防止缓存系统被穿透? 缓存的雪崩是不是可以完全避免? 在一个面临高并发系统中,缓存几乎成了每个架构师应对高流量的首冲解决方案,...
2020-09-28 11:43:37
166
原创 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
671
原创 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
1779
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人