自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 keycloak的access_token解析 用于后端接口鉴权

获取access_token后 和bearer拼接到header头中。

2023-04-24 11:19:45 1383

原创 Es 通过javaApi上传数据Long类型丢失精度的问题一次性解决

Es 通过javaApi上传数据Long类型丢失精度的问题一次性解决和UpdateRequest的插入和修改

2022-11-18 09:45:13 1504

原创 Stream流遇到的问题(持续更新)

Stream流遇到的问题(持续更新)1.排序问题按照任务开始时间(结束时间)排序,如果开始时间(结束时间)为null,就按照结束时间(开始时间)排序@Test void contextDemo(){ long start = System.currentTimeMillis(); QueryWrapper<Time> queryWrapper = new QueryWrapper<>(); List<Time>

2021-12-28 11:52:08 564

原创 http请求参数中巨坑的“+”被转为空格的问题

http请求参数中巨坑的“+”被转为空格的问题​ 我在工作中遇到一个问题,我们在通过 SpringBoot 提供的(客户端请求) RestTemplate 方法去请求其他服务的接口时,所带参数携带 “+” 号被转换成空格的问题1.前提前提我们得先知道HTTP请求中携带的参数中带 “+” 请求后端时,在经过 tomcat 时,会被替换成空格。通过debug我们来到public final class Parameters 类中的 processParameters 方法经过层层套娃之后他

2021-12-26 01:16:32 11786 1

原创 excelPoi-导出类型为数值

ExcelPoi开发中遇到的导出问题,要把导出的数字,由文本改为数值,类型改为数字首先把导出的文本改为数字很简单,只要在@EXCEL(type = 10)即可,但是我们要把单元格类型由文本类型改为数值类型由于我用的是ExcelPoi封装好的工具类:ExcelExportUtil.exportExcel ( ),他会使用默认的ExcelExportStylerDefaultImpl类去实现他的样式看源码:/** * 样式的默认实现 * @author JueYue * 2015年

2021-12-20 13:50:15 2526 3

原创 Mysql高级

shell->MySql1、Mysql底层的四层构架1、连接层比如java层面的JDBC,主要完成一些类似于连接处理,授权认证等,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程2、服务层处理sql语句,对sql进行分析,和优化如确定查询表的顺序,是否利用索引,最后生成相应的执行操作3、引擎层存储引擎层,真正的负责了MySql中数据的存储和提取。不同的存储引擎功能不同。常用的MyISAM和InnoDB4、存储层数据存储层,主要将数据存储磁盘上,并完成与存储引擎的交互。

2021-11-02 00:36:30 103

原创 Mybatis-Plus学习

Mybatis-Plus官网:https://mp.baomidou.com/guide/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持

2021-10-24 17:54:20 175

原创 Mybatis-Plus

Mybatis-Plus官网:https://mp.baomidou.com/guide/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持

2021-10-24 17:50:41 109

原创 关于HashSet思考

关于HashSet思考package com.wzw.service;import java.util.HashSet;import java.util.Objects;public class test { public static void main(String[] args) { HashSet<Object> set = new HashSet<>(); Persion persion = new Persion(100

2021-10-24 14:33:33 48

原创 工厂模式:具体看源代码

工厂模式源代码:https://gitee.com/qplo/design-pattern/tree/master/src/main/java/com作用:实例化对象不使用new,用工厂方法代替。实现了调用者和创建者的分离详细分类简单工厂模式工厂方法模式抽象方法模式简单工厂模式简单工厂模式,也叫静态工厂模式,对象的创建交给工厂public class CarFactory { //方法一 public static Car getCarName

2021-10-22 17:50:24 85

原创 写一个简单的枚举类

package com.wzw.single;public enum Season { SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天"); private final String season; private Season( String season) { this.season = season; } public String getSeas

2021-10-20 22:31:53 68

原创 单例模式个人理解(详细)

单例模式个人理解一个类只允许创建一个对象(或者实例),那这个类一定就是单例单例模式最大的特征就是构造器私有化,常见的饿汉式和懒汉式先说说饿汉式,饿汉式在类加载好的时候创建了一个静态的类的实例对象,所有的的线程都只能访问这一个对象,所以他是线程安全的package com.wzw.single;//饿汉式public class Hungry { //构造器私有化 private Hungry(){} //饿汉式只要虚拟机启动了他就会把所有的内存空间都加载进来会浪费内存

2021-10-20 22:10:52 80

原创 数组跳步问题

给定一个正数数组arr,arr[i]=j表示从i个位置开始,跳一步可以往又越过随意的1-j个位置你一开始站在0位置,请问跳到N-1位置,至少跳几步?比如[4,1,9,1,1,1,1,4,1,1,1]开始你在0位置,你可以自由的往又跳四个位置,但是你选择跳到2位置(9所在的位置)从这里就可以直接跳到N-1的位置了,因为9很大可以跳到最后面返回2,表示最少两步可以搞定这个问题思路:假设有一个数组[4,1,3,2,4,2,6,1,1,1,2,1]现在,我们设定四个常量i 当前下标jump

2021-10-16 20:22:40 199

原创 指定1-5,生成1-7随机函数

给定一个能生成等概率1-5随机数的函数,请你写一个自定义函数生成等概率1-7的随机数思路:我们要得到1-7,那么只要得到(0-6)+1即可,(1-5)转换为(0-4),那问题就是怎么把(0-4)转换为(0-6)的问题了思路一: //给定函数,随机生成1-5 public static int f(){ return (int)(Math.random()*5)+1; } //随机生成0-4 public static int a(){

2021-10-16 18:55:31 239

原创 ArrayList源码分析

ArrayList一、成员变量1、private static final long serialVersionUID = 8683452581122892189L;serialVersionUID的唯一值判定其为同一个对象。2、private static final int DEFAULT_CAPACITY = 10;默认的容量大小3、private static final Object[] EMPTY_ELEMENTDATA = {};定义一个空数组,在无参构造中使用4、

2021-10-16 14:28:03 143

原创 easyExcels实现导入导出excel

easyExcel详细学习请看官网 https://www.yuque.com/easyexcel/doc/easyexcel1、文件批量导出excel导入maven <!-- easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId>

2021-10-15 20:44:55 170

原创 security

Security文章目录Security1、基本原理,三个基本的过滤器1.1、FilterSecurityInterceptor1.2、ExceptionTranslationFilter1.3、UsernamePasswordAuthenticationFilter2、思考:过滤器链是如何进行加载的?3、两个重要接口3.1、UserDetailsService 接口:3.2、PassWordEncoder 接口:4.web权限认证4.1、认证例子(这是我自己的项目写的)4.2、授权4.2.1、hasAu

2021-10-09 16:32:52 88

原创 并发编程,集合框架

本大爷的目录文章目录本大爷的目录ava并发编程1、什么是高并发垂直扩展水平扩展2、JUC3、进程和线程4、Sleep和Wait5、synchronized 锁定的是什么6、lock经典案例卖票生产者消费者模式7、ConcurrentModificationException8、JUC工具类9、读写锁10、线程池线程池三大考点11、ForkJoin框架12、Volatile关键词线程池 里的队列workQueue集合框架1、Collection接口2、Collection 子接口3、List接口4、List

2021-10-07 22:37:33 97

原创 01Mybatic

Mybatis1.简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。如何获得mybatismaven仓库github1.2什么是持久化数据持久化:持久化就是将程序的数据在持久状

2021-07-03 11:27:57 70

原创 05复杂查询环境搭建

复杂查询环境搭建1 多对一,多对一处理多个学生,对应一个老师对于学生这边而言,关联…,多个学生关联一个老师【多对一】对于老师而言,集合,一个老师,有很多学生【一对多】association– 一个复杂类型的关联;许多结果将包装成这种类型嵌套结果映射 – 关联可以是 resultMap 元素,或是对其它结果映射的引用collection– 一个复杂类型的集合嵌套结果映射 – 集合可以是 resultMap 元素,或是对其它结果映射的引SQL语句CRE

2021-07-02 18:31:02 60

原创 04分页实现

分页1 使用Limit分页语法:SELECT * from user limit startIndex,pageSize使用Mybatis实现分页接口 //分页实现查询 List<User> getUserByLimit(Map<String,Integer> map);接口实现 <select id="getUserByLimit" resultType="user" parameterType="map">

2021-07-02 18:30:31 40

原创 03日志工厂

日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志就是做好的助手SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握】NO_LOGGING在Mybatis中具体使用哪一个日志实现,在设置中设定!STDOUT_LOGGING标准日志输出在mybatis-config.xml核心配置文件中,配置我们的日志! <settings> <setting name="lo

2021-07-02 18:29:58 65

原创 02配置解析

配置解析1.核心配置文件mybatis-config.xmlMyBastis的配置文件包含了会深深影响MyBastis行为的设置和属性信configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dat

2021-07-02 18:29:26 47

原创 09Filter

Filter过滤器Filter:过滤器,用来过滤网站中的数据;处理中文乱码登录验证,,,,Filter开发步骤public class Filterdemo01 implements Filter { //初始化 public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest servletRequ

2021-07-01 18:10:25 67

原创 08JavaBean

javaBean实体类JavaBean有特定的写法必须要有一个无参构造属性必须私有化必须有对应的get、set方法一般用来和数据库的字段做映射 ORMORM:对象关系映射表–》映射字段–》属性行记录–》对象MVC三层构架什么是MVC ----model view controllerModel业务处理:业务逻辑(Service)数据持久层:CURD(Dao)View展示数据提供链接发起的Servlet请求Controller

2021-07-01 18:09:54 41

原创 05Cookie,Session

Cookie Session1.Cookie1.1 会话会话:用户打开一个浏览器,点击了很多链接,访问了超多链接,访问多个web服务器,关闭浏览器,这个过程可以称之为会话有状态会话:一个同学来过教室,我们会知道这个同学,曾经来过,称之为有状态会话你能怎么证明你是元培的学生对象:你 元培1.发票 元培给你发票2.学校登记 元培标记你来过?一个网站,怎么证明你来过?客户端 服务端1.服务端给客户端一个信件,客户端下次访问

2021-06-30 12:23:50 43

原创 04resquest

RequestHttpServletRequestHttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,Http请求中的所有信息会封装到HttpServletRequest,通过这个HttpServletRequest的方法,获得客户端的所有信息 req.getContextPath()//路径 req.getAuthType()//作者信息,就是谁的访问的 req.getCookie()// req.getDateHeader()// re

2021-06-29 15:27:06 52

原创 03response

4.HTTPServletResponseweb服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HTTPServletResponse对象,代表响应的一个HTTPServletResponse ;如果要获取客户端请求过来的的参数:找HTTPServletRequest如果要给客户端响应一些信息:找HTTPServletResponse4.1 Response方法简单分类负责向浏览器发送数据的方法ServletOutputStream getOutputStream(

2021-06-29 15:26:43 40

原创 02Servlet

01Servlet1.1Servlet简介Servlet就是sun公司开发动态web的一门技术sun在这些API中提供一个接口叫做:Servlet,如果你想开发为一个Servlet程序,只需要完成两个步骤:编写一个类,实现Servlet接口把开发好的java类部署到web服务器中把实现了Servlet接口的java程序叫做,Servlet1.2HelloServlet构建一个Maven项目 <dependency> <groupI

2021-06-29 15:12:26 45

原创 01javaweb

JavaWeb1.基本概念1,1前言web开发:web,网页的意思,www.baidu.com静态webhtml,css提供给别人看得数据始终不会发生变化!动态web淘宝,几乎所有网站提供给别人看得数据始终会发生变化,每个人在不同时间地点看到信息各不相同技术栈:Servlet/JSP,ASP,PHP在java中,动态web资源开发的技术统称为javaweb1.2,web应用程序web应用程序:可以提供浏览器访问的程序a.html ,b.html…多

2021-06-29 15:10:48 58

原创 11线程协作

生产着消费者模式应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费如果仓库中中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止生产者—>数据缓存区---->消费者这是一个线程同步问题生产者和消费者共享一个资源,并且生产者和消费者之间互相依赖,互为条件对于生产者,没有生

2021-06-26 22:30:18 32

原创 09死锁synchronized

死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”,就可能发生“死锁的问题”举例化妆,只有同时拥有镜子和口红的锁才能开始化妆package edu.wzw.TestUnsafe;//死锁:多个线程互相抱着对方需要的资源,然后形成僵持public class DeadLock { public static void main(String[] args)

2021-06-26 22:29:45 47

原创 08线程同步

线程同步并发:多个线程操作同一个对象上万人抢同一张音乐节票排队去打饭现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个一个来处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这是hi欧我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程在使用队列和锁每个对象都有一把锁,线程同步形成条件:

2021-06-26 22:28:35 41

原创 07守护线程(线程状态)

守护线程(线程状态)线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕如,后台记录操作日志,监控内存,垃圾回收等待。。package edu.wzw.Teat;import org.omg.PortableServer.THREAD_POLICY_ID;public class TestDaemon { public static void main(String[] args) { God god = new God();

2021-06-26 22:28:05 50

原创 06线程的优先级(线程状态)

线程的优先级java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度按照优先级决定应调度哪个线程来执行线程的优先级用数字表示,范围1~10使用以下方法改变或者获取优先级setPriority(int xxx)getPriority()优先级的设定建议在start()调度前优先级低只是意味着获得调度的概率低,并不是优先级低就不会被调用了,这都是看cpu的调度package edu.wzw.Teat;public class Tes

2021-06-26 22:25:31 45

原创 05线程状态

线程状态五大状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wLbYeuoW-1624717395009)(C:\Users\deku\AppData\Roaming\Typora\typora-user-images\image-20210618161202649.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZitPZLes-1624717280831)(C:\Users\deku\AppData\Roaming\Typo

2021-06-26 22:24:36 41

原创 04静态代理

静态代理模式演示:实现静态代理对比Thread静态代理需要代理类和被代理类均实现统一接口,将一些行为容易包装在代理类里,被代理类只需要“调用”即可package edu.wzw.Thread;import java.sql.SQLOutput;/*静态代理模式总结:真实对象和代理对象都要实现一个接口代理对象要代理真实角色好处: 代理对象可以做很多真是对象做不了的事情 真实对象专注做自己的事情*/public class classdemo { public

2021-06-26 22:21:12 52

原创 03Lamda表达式

Lambda表达式概念:为什么要用避免匿名内部类定义过多可以然你代码看起来跟简洁去掉一推没有意义的代码其实质属于函数式编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements} 函数式接口的定义任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数是式接口public interface Runable{ public abstract

2021-06-26 22:20:42 47

原创 02案例龟兔赛跑

案例:龟兔赛跑首先来个赛道距离,然后要离终点越来越近判断比赛是否结束打印出胜利者龟兔赛跑开始故事中时乌龟赢的,兔子需要睡觉,所以我们来模拟兔子睡觉终于,乌龟赢得比赛package edu.wzw.Thread;public class Race implements Runnable{ private static String Winner; @Override public void run() { for (int i = 1; i &lt

2021-06-26 22:19:39 95

原创 01多线程

多线程简介创建线程Thread class继承Thread类(重点)1.自定义线程类继承Thread类2.重写run()方法,编写线程执行体3.创建线程对象,调用start()方法启动线程package edu.wzw.Thread;//创建线程方法:继承Thread类,重写run()方法,调用start开启线程//总结:注意,线程开启不一定立即执行,由cpu调度执行public class demo01 extends Thread{ @Override publ

2021-06-26 22:19:05 64

并发编程.md

并发编程.md

2021-09-13

空空如也

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

TA关注的人

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