- 博客(56)
- 资源 (15)
- 收藏
- 关注
原创 markdown基本使用
1、使用 # 号可表示 1~6 级标题# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题2、可以使用斜体、粗体和粗斜体三种字体,使用 * 或 _ 包裹即可代码: // *斜体文本* // **粗体文本** // ***粗斜体文本***效果:斜体文本 // 斜体文本粗体文本 // 粗体文本粗斜体文本 // 粗斜体文本3、分隔线:使用三个或以上的*、-、_来建立分隔线,其中可以插入空格。代
2022-05-24 10:06:14
137
原创 linux 搭建jenkins服务,实现打包发布
前提:想要在linux 上实现这个功能需要有一些前提条件:准备一个jenkins.war 、tomcat、jdk、git客户端、maven下载首先
2022-05-23 16:10:29
1262
2
原创 CompletableFuture详解
背景:CompletableFuture字面翻译过来,就是“可完成的Future”。同传统的Future相比较,CompletableFuture能够主动设置计算的结果值(主动终结计算过程,即completable),从而在某些场景下主动结束阻塞等待。而Future由于不能主动设置计算结果值,一旦调用get()进行阻塞等待,要么当计算结果产生,要么超时,才会返回。CompletableFuture说白了其实就是为了解决Future的问题(阻塞),而生!!!下面总结CompletableFuture的常
2022-04-04 12:49:31
9576
原创 jdk新特性::作用
双冒号作用:jdk1.8中lambda 经常需要操作函数式接口表达式,表达式也是需要人写出来的,如果有现成的,那么久不需要写了,这里的双冒号其实就是对方法体的一种引用。以下是Java 8中方法引用的一些语法:1、静态方法引用(static method)语法:classname::methodname 例如:Person::getAge2、对象的实例方法引用语法:instancename::methodname 例如:System.out::println3、对象的超类方法引用语法: super:
2022-04-03 17:30:46
492
原创 四大函数型接口
1、Consumer:消费型接口,有参无返回值@FunctionalInterfacepublic interface Consumer<T> { /** * Performs this operation on the given argument. * * @param t the input argument */ void accept(T t); }第一种写法: Consumer<String&g
2022-04-03 16:22:23
419
原创 如何在sprinboot容器启动的时候,去监听容器的过程,然后做一些事情呢
1、在项目的classpath目录下面加上这个东西,springboot启动的时候,其实会去加载这个文件的2、编写对应的类:package com.cqupt.annotation.listener;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.SpringApplicationRunListener;impo
2022-03-10 13:39:31
450
原创 Java注解 @Repeatable
当我们需要重复使用某个注解时,希望利用相同的注解来表现所有的形式时,我们可以借助@Repeatable注解。@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME)public @interface Persons { Person[] value();}@Repeatable(Persons.class)public @interface Person{ String role() default "";}
2022-03-01 16:05:49
400
原创 Spring中WebApplicationInitializer的详解
https://blog.youkuaiyun.com/zq17865815296/article/details/79464403
2022-01-25 07:00:41
417
原创 controller层没有传request对象,如何获取request这个参数?
如下: import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestA
2022-01-23 15:27:36
1773
原创 springboot 如何使用优秀的jar包,在maven仓库没有jar包的前提下
https://www.cnblogs.com/netcorner/p/10962981.html
2022-01-20 07:42:03
285
原创 基于redis整合Lua脚本完成限流操作
shield-ratelimiter基于Redis的分布式限流工具包在分布式领域,我们难免会遇到并发量突增,对后端服务造成高压力,严重甚至会导致系统宕机。为避免这种问题,我们通常会为接口添加限流、降级、熔断等能力,从而使接口更为健壮。Java领域常见的开源组件有Netflix的hystrix,阿里系开源的sentinel等,都是蛮不错的限流熔断框架。今天我们就基于Redis组件的特性,实现一个分布式限流组件,名字就定为shield-ratelimiter。原理首先解释下为何采用Redis作为限流组
2022-01-20 07:31:02
1728
原创 多线程相关
cyclicbarrier接下里用一个实例来介绍一波barrier用法:示例1:开学了,有多个同学来学校交作业,只有当老师喊一声交作业了,所有同学才能开始交作业,运用多线程来模拟此过程package 多线程;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier; public class cyclicbarrier用法 { /* * 该用法就是在多个线程同
2022-01-20 06:50:49
99
原创 如何实现一个复杂对象的部分字段脱敏操作
思路:如果我有一个复杂的对象,那么这个对象每个属性的值,我肯定是已知的,而且它的字段类型是已知的,字段的返回值是已知的,对象的类注解,字段的注解,方法的注解我都能拿到(利用反射)那么问题是不是就变的简单很多呢?因为我可以利用注解,在我想要实现脱敏的字段上加上指定注解,然后最后拿到的value,利用反射给他set回去,那么这样是不是就实现了呢?下面看代码如何实现的!代码:@Target({ElementType.FIELD, ElementType.METHOD})@Retention(Retenti
2021-12-23 21:49:38
658
原创 小的东西记载
注解没有set方法,如何动态的设置属性值/** * 设置注解字段值 * * @throws SecurityException * @throws NoSuchFieldException */ public static void setAnnotationValue(Annotation annotation, String propertyName, Object value) throws IllegalArgumentException, IllegalAccess
2021-12-19 15:20:31
210
原创 java泛型中? super String和? extends String区别
super:包括String和它的父类extends:因为String是final,无法被继承,所以只包括nullList<? super String> list1 = new ArrayList<>();list1.add(null);list1.add("String"); List<? extends String> list = new ArrayList<>();list.add(null);// 会报错list.add("Str
2021-12-07 23:02:15
511
原创 getComponentType()
反射创建数组:在Java的反射机制中,通过 数组的 class 对象的getComponentType()方法可以取得一个数组的Class对象, 通过Array.newInstance()可以反射生成数组对象,看示例代码: char[] charArray = (char [])Array.newInstance(char[].class.getComponentType(), 100); System.out.println("the length of the charArray
2021-12-07 22:28:37
636
原创 方法上加上@Autowired注解
現在有如下的一段代碼:/** * 解决写入redis缓存时key乱码问题 * @param redisTemplate */@Autowired(required = false)public void setRedisTemplate(RedisTemplate redisTemplate) { RedisSerializer stringSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializ
2021-09-21 16:22:16
2851
3
原创 log日志详解
日志的话,看下面这张图就够了!!!各种日志框架的使用,及如何使用slf4j去绑定别的日志框架,及spring如何去使用log4j的情况下,再去适配器,适配到slf4j,再去绑定再去选择!
2021-09-05 17:52:02
531
原创 spring security详解
1.概要Spring是非常流行和成功的Java应用开发框架,SpringSecurity正是Spring家族中的成员。SpringSecurity基于Spring框架,提供了一套Web应用安全性的完整解决方案。正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是SpringSecurity重要核心功能。(1)用户认证指的是:验证某个用户是否为系统
2021-07-15 23:00:42
7241
原创 多线程8锁问题
1、一个对象,两个同步方法:优先拿到锁的先执行!只要是锁的一个对象, 方法都是同步方法应该都是谁先拿到锁,谁先执行,剩下的只能等待2、两个对象,两个同步方法,两个同时执行,因为是两个锁3、一个对象,一个同步方法,一个不是同步方法,两个线程去调用,非同步方法,因为不受阻塞限制4、两个静态方法,两个对象,只要锁住一个,那么久斗殴锁住了,因为锁住的是类5、1个静态的同步方法,1个普通的同步方法 ,一个对象两个同时执行,不受限制6、1个静态的同步方法,1个普通的同步方法 ,两个对象两个同时执行,不受限
2021-05-29 23:09:12
123
原创 如何利用idea 下载所有的坐标jar包
1、第一步 打开idea2、第二步dependency:copy-dependencies -DoutputDirectory=lib3、第三步运行4、第四步所有的jar包就会被打包在lib目录下
2021-03-19 18:09:56
1060
原创 spring循环注入详解
本人仅仅是怕自己遗忘,将来复习使用的资料!有两个bean,indexService 和userService,两者内部互相注入了对方,那么就造成循环依赖了,spring底层是如何操作的呢?如下:1、版本:2、入口: @Test public void test01(){ AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfAOP.c
2021-03-11 22:33:07
1450
原创 lambda 详解
前提: List<User> all = new ArrayList<User>(); Wrapper<User> queryWrapper = new QueryWrapper<>(); all = userMapper.selectList(queryWrapper);一个对象的集合转化成另一个对象的集合( 可以是自己新建的DTO,里面取的字段可以是通过构造方法) List<UserVo> cartDTOLi.
2021-02-01 15:59:19
2033
10
原创 设计模式-目的与遵守的原则
1、设计模式的目的:编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好1) 代码重用性 (即:相同功能的代码,不用多次编写)2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)4) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)5) 使程序呈现高内聚,低耦合的特性分享金句:设计模式包含了面向对象的精髓,“懂了设计
2021-01-30 15:04:32
169
原创 设计模式-组合模式
1、需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。该如何去做代码设计?代码结构如下:2、下面用设计模式中的组合模式去设计代码,代码如下:组织package com.atguigu.composite;public abstract class OrganizationComponent { private String name; // 名字 private String des; // 说明 protected void add(Orga
2021-01-30 14:44:34
174
1
原创 设计模式-装饰者模式
1、请问实现以下功能需要怎么去写代码?咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用OO的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。常规思路:方案1-解决星巴克咖啡订单问题分析Drink 是一个抽象类,表示饮料des就是对咖啡的描述, 比如咖啡的名字c
2021-01-29 12:55:27
138
原创 maven中pom、jar、war三种打包方式的区别
三种文件的特点pom是maven依赖文件–比如说父目录jar是java普通项目打包文件-比如说springboot项目war是javaweb项目打包文件-比如说tomcat项目具体应用1、pom打包方式可以作为其他项目的maven依赖,构建maven项目时可用在父级工程或者聚合工程中,用来做jar包的版本控制;2、jar包通常是开发时需要应用的类,当需要某些功能时就导入相应的jar包,在构建maven时作为子类;3、war包用来发布服务,打成war包后部署到服务器访问。..
2021-01-17 15:33:26
2255
原创 linux搭建rabbitMq
首先想安装rabbitMq必须要装erlang,因为前者是基于后者开发的。安装有两种方式:第一种是直接用yml安装,直接一个命令就搞定了。第二种:还有一种是下载包文件,解压缩文件,手动配置环境变量。本文我erlang用下载包的方式去安装,rabbitMq采用yml安装,让大家两种都感受下!erlang:下载地址:一、安装erlang1、安装预环境由于安装需要其他一些依赖,直接给出命令,避免报错麻烦yum -y install make gcc gcc-c++ kernel-devel
2021-01-17 02:10:34
251
原创 bootstrap和application区别
1.首先yml和properties文件都是属于配置文件,功能一样。主要是区别于application和bootstrap的加载顺序。Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。2.典型场景1.当使用 Spring Cloud Config Server的时候,你应该在 bootstrap.yml里面指定 spri
2020-08-01 11:45:37
5086
原创 利用拦截器获取方法名问题
利用拦截器获取方法名public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws Exception { if(handler instanceof HandlerMethod) { Object bean = ((HandlerMethod) handler).getBean(); Class<?
2020-07-22 15:23:00
1450
原创 TortoiseGit 解决冲突(万能方法)
1.右键》team》synchronize workspace2.看见冲突3.备份冲突文件4.选中文件》右键》覆盖5.提交文件至本地仓库(此时文件和远程仓库一模一样)6.此时冲突貌似还在,只要点击更新,冲突就消失了,最后拿当前文件跟之前备份文件比对,解决冲突,提交即可。...
2020-05-20 16:45:29
2978
原创 pom详解
pom詳解:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/mav...
2020-02-25 17:24:26
509
原创 BigDecimal中divide方法详解
首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算。其中有这么一个方法. public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式。其中我们标题上就是其中的两种BigDecimal.ROUND_DOW...
2020-02-24 12:05:35
109199
5
原创 jspdf + html2canvas 实现html转pdf -----提高分辨率(高清版版本)
前提:跟着我一步一步,最终一定会成功!(本人已经实现该功能)背景:需要做一个导出PDF的功能,网上找有很多,但是一般导出来的都是比较模糊的那种,下面这个是高清版的,导出的PDF都是几M,跟正常手动导出的差不多,很清晰。而且还有优点是无需经过后台,纯前段生成,很轻量,完全仅仅依赖客户端即可!(后台代码过于复杂,尤其是用画笔去画,再填充数据等特别复杂,故推荐直接前端生成)首先用到的JS如下:...
2020-02-23 15:52:19
6849
2
原创 java生成pdf(利用dom4j、freemarker生成固定模板格式的pdf文件)
背景:跟着我的步骤一步一步,最后一定会成功!!首先生成pdf有很多种方式:iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;Apache PDFBox,生成、合并PDF文档;docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。比较:iText开源协议为AGPL,而其他两个框架协议均为Apache License v2.0。需要用画笔去...
2020-02-20 21:50:37
4731
1
redis-cachae
2024-08-12
maven-bin-tar安装包-使用linux
2022-05-23
jenkins war 包
2022-05-23
Erlang9.zip
2020-09-03
html2canvas.js 和jsPdf.debug.js下载.rar
2020-02-23
wold转pdf工具类,WordUtil.convertDocxToPDF(File docx, String pdfPath)
2020-02-19
阿里发送短信封装类(AliyunSmsUtils.java、亲测可用)
2020-02-13
zookeeper文件下载,稳定可用,本人亲测
2020-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人