自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 java.lang.IllegalStateException: Cannot get a text value from a numeric cell

这个是我在导入excel表时,一个cell读取数据时报的错误,当时就在想为什么会报错,因为我读进去用的是row.getcell(i).getStringcellValue(),后来才发现因为表格里全是数字,POI默认为int类型,所以要再你要读取的cell前面设置一下,row.getCell(i).setCellType(Cell.CELL_TYPE_STRING);这样都读出来就没问题了。...

2019-01-31 08:31:34 5053

原创 Spring Data JPA 设置字段默认值失败

jpa注解设置默认值用到的注解是@Column。但有一个问题就是,如果你已经建立好了表,然后在加上@Column(insertable = false,columnDefinition = “int default 1”)是没有用,因为这个注解只有在建表时才会起作用,也就是说,如果DB中表已经建好,该属性没有必要使用@Column(columnDefinition=“int default 1”...

2019-01-23 18:27:48 2960

原创 解决RequestBody获取数据报Stream closed

在做项目时,想要从前端拿两个List对象,在用swaager进行测试时,输入数据后,报了Can not deserialize instance of out of START_ARRAY token,原来接口代码为:public Result AddSysUser( @RequestBody @Validated(V.Insert.class) SysUserDTO sysUserDTO, @...

2019-01-03 17:13:36 5228

原创 Zookeeper实现分布式锁

1.传统业务场景在一个项目中,需要生成一个全局的唯一ID,现在的方案有UUID,时间戳。用多线程模拟生成。//生成id类public class NumGenerator { //全局id public static int count = 0; public String getNumber() { try { Thread.sleep(200); } catc...

2019-04-09 19:20:25 160

原创 Zookeeper介绍,事件Watcher

1.什么是Zookeeper?

2019-04-08 17:57:43 182

原创 Springboot项目启动到一半卡住了,不报错

今天启动项目时,启动到一半卡住了,不报错,开始我以为是timeout,后来发现不是这个原因。然后在网上找了很多资料,有些说是日志Jar包递归了,可是我同事本地跑起来却没有错,找了好久的原因,然后我想着重新import下pom.xml,重新部署jar包,果不其然,可以了。...

2019-04-03 13:50:38 22261 15

转载 HTTP中GET与POST的区别

https://blog.csdn.net/hanchao5272/article/details/88814992我觉得这个很牛皮

2019-04-03 13:34:40 116

原创 SpringCloud Hystrix

SpringCloud Hystrix(断路器)的作用主要是:熔断机制,服务降级,服务限流和解决服务雪崩效应。1.什么是服务雪崩效应?假如在一个A工程中的tomcat服务器中有两个服务接口地址,一个test/login,一个是test/get,另一个B项目中有一个接口需要去调用test/get,假如test/get每两秒进行响应,假如客户端通过B去调用A,B中的tomcat最大线程为30个,B...

2019-04-02 19:33:58 138

原创 配置Ngnix负载均衡和负载均衡算法

在ngnix.conf文件中:#定义一个多个上有服务器#1.权重算法 8080 为1,8081为2upstream backServer{server 127.0.0.1:8080 weight 1;server 127.0.0.1:8081 weight 2 ;}##2.配置ip绑定,只要访问一次,固定某个ip访问upstream backServer{server 12...

2019-04-02 11:49:40 203

原创 Ngnix的server服務和location的作用

####服務艦艇的端口號server {##艦艇的端口號listen 80;##服務名稱server_name localhost; #charset koi8-r; #access_log logs/host.access.log main;##匹配URL路勁地址 / 表示匹配所有路勁地址 默認不區分大小寫location / {root ...

2019-03-26 22:32:48 235

原创 JPA查询数据库时,数据库中只有一条,查询出多条的原因

今天在做一个Query查询时,数据库中只有一条,却在封装的查询语句中查询出多条出来,百思不得解,开始以为是Query封装出了问题,后来测试后发现没问题,然后想到在控制台查看是否输出了多条查询语句,还真是。然后想到了对象关联问题:@Fetch(FetchMode.JOIN) 会使用left join查询 只产生一条sql语句@Fetch(FetchMode.SELECT) 会产生N+1...

2019-03-08 15:13:43 2330

原创 手写LikendList和LikendList原理

自己手写LinkedList时,发现处理节点有些时候思维有点重复,后面调试的时候才发现有些代码重复了。1.链表结构likendList底层就是有一个Node对象,node对象中有三个要素:见代码添加有两种方式,无非就是改变节点前后对应的节点,删除也是一样,核心思想在于如何操作节点。import lombok.Data;@Datapublic class ExtLinkedLis...

2019-03-07 15:43:00 884

原创 Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist

在用jpa做底层添加一个对象时,对象中有一个对应的多对多对象关系@Fetch(FetchMode.SUBSELECT) @ManyToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL) @JoinTable(name="w_equipment_sysuser", joinColumns={@Join...

2019-03-05 14:18:48 162

原创 SpringMVC底层源码思路

//代码千万行,思路很重要//借鉴他人思路然后自己写了下,有可能代码有错,因为在文本文档打的,只供交流。public ExtDispacherServlet extends Httpservlet{ // mvc bean key=beanid ,value=对象 private CurrentHashMap<String,Object> mvcBeans=...

2019-02-26 17:52:19 254

原创 Java计算两个时间点的工作日

在做项目时遇到一个需求,需要计算两个时间点之间的工作日。便于统计项目时间统计。其中有两个方向:第一,调用开源的api,“http://api.goseek.cn/Tools/holiday?date={时间}”,这个api会返回:工作日:0;节假日:1;工作日:2),然后根据返回的数据进行判断,当然这个会受到网络和别人api的限制,但是好处是我们不用去维护节假日,因为这个是国务院每年发布,我们...

2019-02-13 11:29:05 3833 2

原创 Java垃圾收集器

java垃圾收集器主要分为两种,串行和并行。顾名思义,串行是单线程的,并行是多线程的。当垃圾收集器回收时,程序会停止运行,并行回收适合吞吐量大的系统。什么是吞吐量:吞吐量表示在单位时间内通过某个网络或接口的数据量 ,包括全部上传和下载的流量。Serial收集器Serial(串行)垃圾收集器是最基本、发展历史最悠久的收集器;JDK1.3.1前是HotSpot新生代收集的唯一选择,最稳定效率...

2019-01-29 20:29:31 249

原创 Json格式转换报java.lang.StackOverflowError

栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。程序在运行过程中,为了临时存取数据的需要,一般都要分配一些内存空间,通常称这些空间为缓冲区。如果向缓冲区中写入超过其本身长度的数据,以致于缓冲区无法容纳,就会造成缓冲区以外的存储单元被改写,这种现象就称为缓冲区溢出。缓冲区长度一般与用户自己定义的缓冲变量的类型有关。栈溢出就是缓冲区溢出的一种,简单来...

2019-01-28 20:52:01 4089

原创 OutOfMemoryError异常

这个异常在我实际开发中运到过,就是堆溢出,这个为什么会这样,根本原因就是堆内存不够。引起原因有很多,比如最直接的就是设置的堆内存太小。内存中加载的数据量过于庞大;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复的对象实体;解决办法:堆内存太小的情况下,可以直接设置堆内存的大小。设置堆内存请看:https://blog.csdn.net/qq_2...

2019-01-28 20:35:44 1224

原创 JVM参数配置

堆内存大小配置这是我的初始值public class Test { public static void main(String[] args) { System.out.println("最大内存"+Runtime.getRuntime().maxMemory()/1024/1024); System.out.println("可用内存"+Runtime.getRunt...

2019-01-28 20:26:47 1051

原创 垃圾回收机制算法

1.什么是Java垃圾回收机制在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了...

2019-01-27 13:16:49 190 1

原创 适配器模式

什么是适配器模式适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。大家国外旅游出去是不是要买个电源转接口,因为电压和插头跟国内的不太一样,电源转接口就是一个适配器。适配器就是一个桥梁或者说一个接口,比如I/O流里面的OutputStreamWriter:是Writ...

2019-01-23 22:24:18 90

原创 模板方法设计模式

感觉工作以来用的最多的就是模板方法模式,也是在大学学习以来接触最多的,所以今天特地总结了一下这个很重要的模式。先来说个故事,你如果要去办理一个银行业务,首先是不是先在机器上去一个服务号码,然后是排队,最后是办理业务。其中办理业务是不同的,因为有可能取钱存钱,办理其他业务等。前面两个步骤大家是相同的。而模板方法模式的core是什么呢?在模板模式(Template Pattern)中,一个抽象类...

2019-01-20 16:14:06 158

转载 建造者模式

1.什么建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,它跟工厂模式有点相似,工厂是创建单个,而建造者是把多个对象组合成一个复杂对象比如游戏中的人物,由头,身体,脚组成。这三个是独立的对象,而人物就是要构造的复杂对象。2.建造者组成1、Builder:一个抽象接口,以规范产品对象的各个组成成分的建造。但是不涉及具体对象的创建。public interf...

2019-01-20 14:59:07 79

原创 三大工厂模式

前文网上工厂模式的代码很多了,今天在看了一些博文后,我发了一个问题,在项目中实际上运到到的地方很多,但是又感觉自己对这个有所欠缺,所以今晚在这里记录一下,希望大家可以一起交流一下,刚开始对博客怎么写也没有太在意,就是想利用碎片时间记录一下自己的一些感受和心得,希望可以跟大家一起交流。工厂模式有三种,简单工厂,工厂方法和抽象工厂。其中简单工厂和工厂方法很好理解,抽象工厂要绕一点。工厂的作用...

2019-01-17 22:39:22 153

转载 gitpush代码时会出现多余的日志

https://www.cnblogs.com/Sinte-Beuve/p/9195018.html

2019-01-17 15:35:36 341

原创 单例模式

1.什么是单例模式就是在一个程序中,一个类只有一个实体对象。2.单例模式模式的运用场景相信学过Spring框架的人都知道,在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。网站上的人数统计,日志对象,数据库连接池,线程池等。实现单利模式...

2019-01-16 22:42:52 70

原创 设计模式的分类与设计原则

最近在想为什么代码写得冗余,不漂亮,没有良好的封装,才发现自己对设计模式理解的不够深刻。今天就来讲讲设计模式。首先设计模式分为三大类;1.创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。2.结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。3.行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、...

2019-01-16 21:25:56 90

原创 CAS无锁机制

最近在学习并发编程时,看到了CAS无锁机制,特地写个博客分享下。首先先了解一个原子类java.util.concurrent.atomic包:原子类的小工具包,支持在单个变量上解除锁的线程安全编程原子变量类相当于一种泛化的 volatile 变量,能够支持原子的和有条件的读-改-写操作。AtomicInteger 表示一个int类型的值,并提供了 get 和 set 方法,这些 Volat...

2019-01-13 21:51:35 1940

原创 java线程池原理

最近通过线程池源码学习,总结下线程池原理

2019-01-10 19:21:40 102

原创 线程安全

线程安全问题当多个线程共享同一个全局变量,在做读写操作时,可能会受到其他线程的干扰。典型案列,火车站售卖火车票。class ThreadDemo implements Runnable{ private int count=100; public void run(){ while(count>0){ try{ Thread.sleep(1000); ...

2019-01-07 22:43:57 61

原创 多线程学习

线程和进程每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行,线程是进程的最小调度单元。使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,使用多线程可以提高效率。线程的创建...

2019-01-07 21:08:21 82

原创 关于SpringBoot项目中的定时任务

起因近日,在项目中因为一个需求要在规律时间类对数据库中的一个业务逻辑表进行定时任务处理,到了规定时间内,需要将其中的一个字段的状态改掉,所有想到了定时任务。开始想到的是用pgAdmin中的pgAgent ,主要用于PostgreSQL的作业调度代理,能够在复杂的时间表上运行多步批处理shell和SQL任务。但是想到最好还是在代码上做处理比较好一点,于是研究了下springboot中的定时任...

2019-01-04 22:12:00 306

原创 Nginx的学习

NGINX的学习笔记(1)什么是NGNIX?Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件...

2019-01-04 21:21:17 93

原创 Lambda初识

Lambda认识#认识Java 8 Lambda 表达式lambda表达式,即带有参数的表达式,即相当于匿名方法。今天在项目中遇到Lambda表达式,特地来研究一下,借鉴了网友的文章以及菜鸟教程https://blog.csdn.net/yitian_66/article/details/81010434Lambda语法lambda 表达式的语法格式如下:(paramete...

2019-01-02 14:38:31 124

空空如也

空空如也

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

TA关注的人

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