java
文章平均质量分 54
Dubbo-罗
学习知识,目光坚毅,工匠精神。
展开
-
Sentinel熔断限流部署和使用。
Sentinel熔断限流部署和使用。原创 2022-08-19 16:05:45 · 591 阅读 · 0 评论 -
seata分布式事务部署,springCloud集成seata。
seata分布式事务部署,SpringCloud集成seata。原创 2022-08-17 16:26:40 · 837 阅读 · 0 评论 -
spring日志
这个地方是Mybatis中的JCL,这个地方是一个接口,会有很多实现,比如JUL,LOG4J,SLF4J等,这些日志的实现,所以,spring5或者spring4都可以用,但是spring5用的是JUL,JUL的日志级别是原创 2022-07-14 10:38:54 · 133 阅读 · 0 评论 -
springMVC
从源码的角度来看SpringMVC./mvnw clean install -DskipTests -PfastSpringMVC 核心流程先上图:SpringMVC核心流程图简单总结:首先请求进入DispatcherServlet 由DispatcherServlet 从HandlerMappings中提取对应的Handler此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:HandlerAdapter拿到对应HandlerAdapter时,这时候开始调用对应的Handle原创 2022-07-14 10:38:11 · 195 阅读 · 0 评论 -
Java 多线程下载文件
package cn.com.skyvis.Mystudy;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent.CountDownLatch;public class MutiThreadDownLoad { /** * 同时下载的线程数原创 2022-07-14 10:37:40 · 1062 阅读 · 0 评论 -
springBoot 观察者模式
springBoot 观察者模式原创 2022-07-08 10:06:23 · 1541 阅读 · 0 评论 -
类变量和实例变量的区别
类变量和实例变量原创 2022-07-08 09:56:04 · 480 阅读 · 0 评论 -
spring事务底层逻辑分析
从源码角度进行,spring事务底层逻辑分析原创 2022-07-07 10:40:04 · 246 阅读 · 0 评论 -
Mybatis+Spring整合源码
Mybatis+Spring整合源码解析原创 2022-07-07 10:39:15 · 533 阅读 · 0 评论 -
spring的生命周期
spring的生命周期原创 2022-07-07 10:38:47 · 102 阅读 · 0 评论 -
java 密码的盐加密
java 密码的盐加密原创 2022-07-07 10:37:42 · 1026 阅读 · 0 评论 -
ReentrantReadWriteLock
读锁应该插队吗?以及什么是读写锁的升降级。读锁插队策略首先,我们来看一下读锁的插队策略,公平与非公平锁中讲到的 ReentrantLock,如果锁被设置为非公平,那么它是可以在前面线程释放锁的瞬间进行插队的,而不需要进行排队。在读写锁这里,策略也是这样的吗?首先,我们看到 ReentrantReadWriteLock 可以设置为公平或者非公平,代码如下:公平锁:ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWrit原创 2022-07-07 10:37:03 · 186 阅读 · 0 评论 -
校验实体类上的属性,有注解的进行验证判断当前字段是否为空的情况。
校验实体类上的属性是否为空原创 2022-07-07 10:34:42 · 772 阅读 · 0 评论 -
自定义注解,实体属性查询具体需要的值
自定义注解使用场景原创 2022-07-07 10:26:45 · 305 阅读 · 0 评论 -
简单的class文件加密解密类加载器使用。
加密解密类加载器翻译 2022-07-06 19:30:56 · 534 阅读 · 0 评论 -
自定义类加载器。
自定义类加载器原创 2022-07-06 19:27:18 · 151 阅读 · 0 评论 -
工具类XMLUtil(解析返回soap和xml报文,获取目标节点值)
1.支持jar包(可能存在版本冲突)<!-- https://mvnrepository.com/artifact/org.jdom/jdom --><dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version></dependency>2.原创 2022-04-21 09:52:19 · 1399 阅读 · 2 评论 -
sh文件内容启动文件
#!/bin/bashbashParam="$-"if [ 0 -eq $# ]; then echo "Need param $0 <start|stop|restart> "fiOPERATION=$1#SYNDATA_HOME=$(cd "$(dirname "$0")" && pwd)CUR_DIR=$(cd `dirname "$0"`; pwd)SYNDATA_HOME=$(cd ${CUR_DIR}/..; pwd)JAVAHOME=${原创 2022-04-21 09:38:27 · 151 阅读 · 0 评论 -
java 使用ftp下载远程服务器文件
第一种方法连接中带有账号密码直接远程下载: public Result<?> download(){ //进行下载文件---------------------------------开始 //远程服务器下载地址 String fileurl = "ftp://superAdmin:superAdmin123@192.168.1.8:8888/usr/mp4pt/rec/CHN0/10110120011100/00001.mp4"; /原创 2022-04-21 09:29:39 · 2265 阅读 · 0 评论 -
java根据PostMan发送请求:设置接口请求工具类。
我们使用java代码进行接口远程调用第三方接口时,总会抒写接口代码,那么有这么多种方式进行发送请求。那我们应该怎么使用呢?比如有webservice接口,比如有Post请求的接口,必须有Get请求的接口。比如传的参数有xml的形式,比如传的参数有json格式等等格式情况,那我们的接口请求代码应该如何区别,抒写呢?我们要根据postMan中的方式来,只要是能够通过postMan发送成功的请求都可以使用首先是我们的请求方式:第一点:在postMan的请求方式有:GET、POST、PUT、DELETE请求原创 2022-03-21 18:18:33 · 5014 阅读 · 2 评论 -
为什么要重写hashcode方法和equals方法理论源码解析
为什么要重写hashcode方法和equals方法我们可能经常听到说重写equals方法必须重写hashcode方法,这是为什么呢?java中所有的类都是Object的子类,直接上object源码/* * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *原创 2021-10-21 12:57:50 · 183 阅读 · 0 评论 -
HashMap底层原理解析JDK1.7与JDK1.8(二)
JDK1.8通过put中的key去取到下标。key---->key.hashcode()----->然后去取余table.lenght------>inde-----0-7hashCoude转换取余以后会转换成数组的下标比如1,2等。用数组去存储的数据,指定下标去查找,时间复杂度O(1),对于一般的插入操作,涉及到数组元素的移动,平均复杂度是O(N).数组长度16为什么要去减去1,然后进行与运算。**重点链表转化为红黑树,需要链表的长度大于8,但是在转变成R-B tree之原创 2021-10-20 18:28:35 · 182 阅读 · 0 评论 -
SpringIOC学习
如果对于一个类,突然需要代理了,那么以前是通过new出来的就会出问题.我们一个类的参生不应该通过new出来,应该面向抽象编程.IOC 和DI有什么区别和关系:IOC控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.启动最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫"依赖查找"(Dependency Lookup)IOC是一种编程中需要达到的目标,DI是实现IOC的一种技原创 2020-12-27 17:22:50 · 120 阅读 · 0 评论 -
docker离线安装并导入镜像,dockers挂载文件夹和文件,dockers宿主机和容器之间文件和文件夹拷贝。
docker离线安装并导入镜像1、下载docker安装文件离线安装docker,需要下载docker的安装文件。地址:https://download.docker.com/linux/static/stable/x86_64/下载兼容的或者最新的docker安装包.2、离线docker安装将安装包文件上传到服务器目录并解压。docker解压到自己随意指定目录即可[root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar将d原创 2020-12-23 09:25:28 · 858 阅读 · 0 评论 -
设计模式----策略模式案例分析
策略模式.策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”abstract class Duck { //声明接口 protected FlyBehavior flyBehavior; protected QuackBehavior quackBehavior; //调用接口中的方法原创 2020-10-03 14:03:54 · 218 阅读 · 0 评论 -
设计模式---桥接模式案例分析.
桥接模式属于结构型设计模式。设计意图:将抽象部分与实现部分分离,使它们都可以独立的变化。一看到设计意图,大家可能有些发懵,我们看到的继承和接口不都是抽象和实现分离的吗?尤其是接口和抽象类都是这样的实现啊!那怎么还有这么个桥接的分离呢?举一个例子:比如有男人,女人,老人,他们都要上网做事情,男人上网玩英雄联盟,女人上网学习,老人上网玩连连看.如何实现呢?我们先不用桥接模式来实现一下:首先我们先不用桥接模式看看如何实现效果及实现要点:1.Bridge模式使用“对象间的组合关系”解耦了抽象和实..原创 2020-10-03 11:26:03 · 455 阅读 · 0 评论 -
Java Mybatis foreach嵌套foreach List<list<Object>>
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,该参数为必选。index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选open:foreach代码的开始符号,一般是(和close=")"合用。.原创 2020-09-11 16:56:07 · 4246 阅读 · 0 评论 -
创建定时器任务,并控制定时器任务启动,停止,开机自动启动,线程Run()方法中调用外部方法。
public class QuartzJobServiceImpl implements IQuartzJobService {@Autowiredprivate ThreadPoolTaskScheduler threadPoolTaskScheduler;/** * 在ScheduledFuture中有一个cancel可以停止定时任务。 */private ScheduledFuture<?> future;/*存放定时器任务的map,用于启动停止定时器任务*/publi原创 2020-09-06 17:35:19 · 664 阅读 · 0 评论 -
设计模式---单例模式应用场景,案例介绍,原理分析
123原创 2020-08-29 18:42:56 · 410 阅读 · 0 评论 -
设计模式---原型模式深度理解浅拷贝深拷贝原理
一,栈栈具有先进后出,后进先出的特性,数据连续存储,操作简单,使用方便,无需管理。大部分芯片都对栈提供芯片级别的硬件支持,只需要移动指针就可以快速实现内存的分配和回收。比如局部变量使用栈内存,从而减少不必要的内存分配管理。栈创建和删除的时间复杂度是O(1),速度快。栈的缺点是不利于管理大内存,栈中的数据大小和生存周期都是确定的,缺乏灵活性。二,堆堆内存的管理机制相对复杂,有一套相应的分配策略,防止大量小碎片出现,同时加快查找。堆用于动态创建分配内存,创建和删除节点的时间复杂度是O(log原创 2020-08-27 19:34:03 · 226 阅读 · 0 评论 -
设计模式--策略模式---(枚举+Lamda+静态方法策略) 干掉 if else
package cn.com.skyvis.Mystudy;/** * 根据订单返回不同的信息 */@FunctionalInterfacepublic interface MsgInterface { String getMsg(String orderId);}package cn.com.skyvis.Mystudy;/** * 消息策略类 * * @Auther: ZhangSuchao * @Date: 2020/8/10 22:04 */public原创 2020-08-24 13:46:59 · 219 阅读 · 0 评论 -
设计模式---工厂模式和Java中工厂模式源码体现
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活 性的目的。工厂模式可以分为三类:1)简单工厂模式(Simple Factory)2)工厂方法模式(Factory Method)3)抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple原创 2020-08-24 11:57:26 · 340 阅读 · 0 评论 -
JDK8-Lambda表达式-对List的简化操作
import java.util.*; import java.util.stream.Collectors;public class Test { public static void main(String[] args) {List list = new ArrayList<>();Student student1 = new Student();student1.setAge(“12”);student1.setSex(0);Student student2 = new Stu.原创 2020-08-21 09:18:47 · 181 阅读 · 0 评论 -
Java 下载第三方服务器文件到本地.
/** * description: 获取文件名 * @param http * @param urlPath * @throws UnsupportedEncodingException * fileName 文件名称 * @return String * @version v1.0 * @author w * @date 2019年9月3日 下午8:25:55 */ private static String getFileName(Htt原创 2020-08-20 14:31:29 · 886 阅读 · 0 评论 -
获取本地磁盘盘符和盘符下的文件,异步.
public Result<?> loadTreeRoot(@RequestBody Map<String, Object> mapData) { List<BasicCourtInfoVO> basicCourtInfoVOS = new ArrayList<>(); //第一次进入 获取客户端盘符 if ((Boolean) mapData.get("async")) { File[] roots = File.listRoo..原创 2020-08-20 14:26:10 · 217 阅读 · 0 评论 -
如何用Nginx解决前端跨域问题?
原先:调试页面是:http://192.168.1.100:8080/请求的接口是:http://ni.hao.sao/api/get/info步骤一:请求的接口是:http://192.168.1.100:8080/api/get/infoPS:这样就解决了跨域问题。步骤二:安装好Nginx后,去到/usr/local/etc/nginx/目录(这是Mac的),修改nginx.conf文件。步骤三:把默认的server配置注释掉。server{ ..原创 2020-08-20 14:23:43 · 233 阅读 · 0 评论 -
MySQL如何快速生成千万数据量
实现思路1、创建内存表和普通表2、创建函数及存储过程创建生成n个随机数字的函数创建生成号码函数创建随机字符串函数创建插入内存表数据的存储过程创建内存表数据插入普通表的存储过程3、调用存储过程插入数据修改mysql内存表存储大小的值调用我写的另一个存储过程:add_test_user_memory_to_outside实现思路在我们平时工作或学习的过程中,有时需要在数据库中生成大量的测试数据,这个时候,我们可以利用mysql内存表插入速度快的特点,先利用函数和存储过程.转载 2020-08-18 14:07:54 · 857 阅读 · 0 评论 -
Mysql性能优化---索引的使用
优化一:全部用到索引介绍建立的复合索引包含了几个字段,查询的时候最好能全部用到,而且严格按照索引顺序,这样查询效率是最高的。(最理想情况,具体情况具体分析)SQL 案例优化二:最左前缀法则介绍 如果建立的是复合索引,索引的顺序要按照建立时的顺序,即从左到右,如:a->b->c(和 B+树的数据结构有关)无效索引举例a->c:a 有效,c 无效b->c:b、c 都无效c:c 无效SQL 案例优化三:不要对索引做以下处理以下用法会导致索引失转载 2020-08-18 13:53:05 · 180 阅读 · 0 评论 -
HashMap底层原理解析JDK1.7与JDK1.8(一)
异或运算:00得0 11得1 10得1 01得1相同为0不同为1与运算:00得0 11得1 10得0 01的0HashCode 在HashMap中容量大的时候 在定位的时候可能会造成Hash碰撞,通过这样的HashCode计算的话,可以尽量的避免hash碰撞.尽量的散列到数组位子上面去.让每个下标位置尽量都存在再,尽量不要让下标里为空.最大的利用,不要浪费内存,提高查询的效率.有可能会造成某个下标中没有数据,且某个下标的链表数据却非常多了.如果造成Hash碰撞的话,放到某个数组的下标中,形成一个链表原创 2020-06-11 09:21:53 · 260 阅读 · 0 评论