- 博客(27)
- 收藏
- 关注
原创 java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException是java不支持操作异常在对Arrays.asList(T... a)生成的List集合进行add或者remove操作的时候出现的异常出现场景:在使用Arrays.asList(T... a)将一个数组转成list,然后对这个list进行add,remove操作就会出现这个异常,例如:String[] ...
2020-04-27 09:57:52
11506
原创 HTTP协议三次握手跟四次挥手
目录一、建立连接-三次握手为什么连接的时候要进行3次握手呢?二、终止连接-四次挥手为什么结束连接的时候也要进行多次握手呢?SYN攻击HTTP是通过tcp协议来完成的,位码即tcp标志位:SYN(synchronous建立联机)ACK(acknowledgement 确认)PSH(push传送)FIN(finish结束)RST(reset重置)...
2019-12-13 15:36:52
916
原创 前端获取所有枚举值
在实际项目中,有很多用到枚举的地方,比如状态 类别等,很多时候在列表查询的时候,这些状态都是作为查询条件的,所以就需要前端老哥发请求到后台来查询枚举值,这里需要注意了,一般情况下,别让前端老哥写死了,这是很不科学的,要是啥时候状态枚举一改变,前端忘记改了,那你就等着凉凉吧其实查询很简单:1.写一个公共接口给前端老哥@RestController@RequestMap...
2019-07-25 11:25:39
5727
2
原创 枚举以对象或者Json格式形式返回到前端
在实际项目中,有很多地方都会运用到枚举,为啥使用枚举可以自行百度。很多时候我们返回给前端的实体里面也会包含枚举属性,如果你只返回一个code给前端的话,那他可能就懵了,这返回的是啥玩意,就比如:public enum PeriodLoanBillEnum { WAIT_REPAY("WAIT_REPAY", "待还款"), PARTIAL_REPAY("PARTIAL_R...
2019-07-25 10:20:20
10841
5
原创 JavaWeb项目使用RSA算法进行用户名密码验证
RSA算法实例目录RSA算法实例摘要RSA加密流程前端部分后台代码我的做法以及注意事项摘要在写web项目的时候,都会有用户登录的场景,如果使用明文传递到后台不管事get请求还是post请求都会造成用户的信息泄露,所以最好的方式就是把用户名和密码加密之后传到后台进行解密,然后再进行用户登录验证.加密方式有很多种,这里给大家介绍一下RSA非对称加密算法,关于RSA加...
2019-05-15 17:23:42
1730
2
原创 springboot+maven多模块项目整合mybatis
之前在网上搜了很多springboot整合mybatis的文章,大部分说的都是单项目整合mybatis,然后自己摸索了一下,在这里记录一下多模块的maven项目整合mybatis.首先肯定要搭建一个多模块项目,具体步骤就不多赘述了,反正就很简单.看一下项目结构blog-dao module就是我的数据库连接层.然后你可以通过generator生成器生成实体,mapp...
2019-05-06 11:45:19
3599
2
原创 springboot+maven+mybatis 多模块项目中使用maven的generator生成器
其实很简单想看目录结构blog-dao就是我的数据库连接层.1 引入mybatis-generator-maven-plugin<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin&...
2019-05-05 15:44:59
2323
1
原创 spirngboot热部署-html修改无需重启
有的时候我们修改了html,每一次都要重启就显得很没有必要。因此我们要配置热部署1、在你的pom文件引入依赖<!-- spring-boot-devtools 最重要的功能就是热部署。它会监听 classpath 下的文件变动,并且会立即重启应用。 --> <dependency> <groupId>org.sp...
2019-04-28 10:43:13
732
原创 AOP实现
本文介绍AOP基于aspectJ和注解形式的实现,至于什么是aop,那啥请自行百度。在aop的实现中有两种方式:1、基于注解的形式2、基于xml的形式两种都可以,我习惯于用注解的方式来实现。基本思路,比如说现在你在加事务的时候,不用spring的事务注解,用编程式事务。所以要自定义一个注解,然后写一个注解的handler,handler里面就定义切点,环绕通知等等,然后切点用@an...
2019-03-15 16:16:11
468
原创 模板模式
模板模式(Template Pattern) 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。也就是说在重复干一件事情的时候,在这些事情中主体的架构、骨架是一样的,只是每个事情有它自己的一些特性。就比如说我之前在开发君子签合同的时候,十...
2019-03-14 16:38:38
277
原创 Java中使用redis锁
业务场景:有一个统计报表的task(定时)业务,业务大概就是统计数据然后存入数据库中,在线上环境部署到两台不同tomcat上,就是防止我一个task失败之后,另一个也会跑。像这种业务的话,我们要实现会遇到一些问题:1、有可能两个task同时跑,这样的话就会造成两个不同的进程会同时向数据库中写入,会造成数据混乱。为了解决这个问题,我们就可以使用redis锁来解决。解决思路: ...
2018-12-03 17:23:19
4631
原创 element-ui upload上传技巧(二)
在之前的文章中说过怎么在我们手动上传文件的时候以更科学的方式来判断文件的大小。这里记录下在我们添加文件的时候就判断文件的大小,并且把这个文件从element-ui 的upload封装好的fileList(上传的文件列表)中移除。想实现这个功能就要用到 on-change属性,官网上是这么说的:文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用。所以我们需要的就是这个属性。...
2018-09-29 15:53:06
1959
3
原创 浏览器获取自定义响应头response-headers
想在浏览器获取响应头里面自定义的响应头:filename,需要在请求头和响应头都要加上:'Access-Control-Expose-Headers':'filename'请求:响应:这里面就有对应的 Access-Control-Expose-Headers这样在浏览器就能得到filename这个值:...
2018-09-28 19:32:05
7117
原创 element-ui upload上传技巧
本文章应用场景是:前端使用的是vue.js和element-ui。上传是包含在一个表单里面,使用element-ui的upload上传组件,想实现的是在我点击上传选择文件后不让它自动提交,而是在我点击确定后,经过一系列的验证再提交。而且element-ui的upload组件上传的路径跟表单保存的路径是不一样的。具体看代码。 <!-- 新增弹窗--> <...
2018-09-28 10:26:49
62584
16
原创 MySql关于时间查询的技巧
本篇文章讲述一个MySql关于时间查询的技巧。场景:需要通过时间段搜索,比如我的页面是element-ui的时间选择器选择查询一个月的时间,也就是我要条件搜索这一个月的数据。这个时候有一个比较简单的方法,不用知道这个月开始的时间和结束的时间,如果按照以前的方法肯定是 between 开始时间 and 结束时间,但是我们选择的是一个月份,所以要知道结束时间是很麻烦的。因此,这里的方法...
2018-09-28 09:41:51
478
原创 使用easypoi或者easyexcel多表头导出
1、使用easypoi实现多表头导出。其实使用easypoi实现单表头的导出很简单,百度一下到处都是。但是对于多表头的导出搜了很久都没有搜到,网上大多都是自己写自己封装的,没有使用easypoi注解更简单的实现。所以这里记录一下使用easypoi的 @ExcelCollection 注解来实现多表头的导出。首先要导入easypoi相关的jar包。导出主module:ReportInde...
2018-08-16 11:51:41
37232
8
原创 mysql sql语句编写技巧
技巧1:mysql判断是否为null 不能直接写 name=null 要写 name is null。技巧2:update和select操作同一张表的时候,比如有一张用户表userinfo,我们先查询出满足条件的数据,在对其进行修改。一般的话,我们会这么写: UPDATE userinfo SET UserName = 'fuck' WHERE UserId IN ( SELE...
2018-07-13 15:46:34
996
原创 mysql 视图初解
什么是视图view? 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表。也就是说视图是由sql语句查询出来的结果组合成的一个表。创建视图create ...
2018-07-13 15:24:29
297
原创 定时器
本项目采用框架ssm,首先定时器是单独弄了一个module,在这个module下面,有spring配置,有mybatis配置,还有mybatis的分页插件PageHelper的配置,还有关于流程,redis的配置。因为它作为一个单独的模块是能够独立打包运行的。所以所有的配置文件都应该齐全。1.配置文件:applicationContext-task.xml<beans xmlns="http...
2018-06-21 09:33:03
313
原创 bootstrap+ssm框架分页问题
这个分页实用比较简单。在搭好的ssm框架写一个配置文件pagehelper.xml,这个是mabatis的一个分页配置文件。pagehelper.xml:<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN...
2018-06-20 17:04:24
861
原创 Java集合分类以及各自特点
Java分类 以及各自的特点,对集合中的自定义类元素排序,比较器 集合分为Map和Collection两大类 常用的就是ArrayList,LinkedList,HashSet,LinkedHashSet,TreeSet,HashMap,LinkedHashMap,TreeMap;
2017-08-01 23:31:52
25182
3
原创 String,StringBuffer和StringBuilder的区别
String的特点: 1.string对象的值一旦确定就不能改变 2.String 类虽然是引用数据类型 但是他当做参数传递时和基本数据类型一样,是值传递,不改变起值. 基本数据类型包装类当做参数传递时和基本数据类型一样String , StringBuffer 同:都是操作字符串的 异:String效率低 String每拼接一次都会新创建一个字符串 大批量占用内存
2017-07-27 22:14:12
207
原创 equals和==的区别
1.对于==,如果比较的是基本数据类型则是比较的”值”是否相等,如果比较的是引用数据类型则是比较的”地址”是否相等 2.对于equals方法,注意:equals方法不能作用于基本数据类型的变量 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容(也就是比较的是对象的值)。重写e
2017-07-27 22:08:05
220
原创 java面向对象的三大特征:封装-继承-多态
java面向对象的三大特征:封装-继承-多态 什么是面向对象?Java是一门面向对象的语言,面向对象跟面向过程一样,都是一种思想,面向过程强调的是功能行为,关注的是实现功能所要完成的步骤.然而面向对象强调的是具备功能的对象.关注的是解决问题需要哪些对象.什么是对象?万物皆对象,所有的事物都可以看成一个对象.描述现实事物,行为就是事物身上的动词,属性就是事物身上的名词.
2017-07-22 13:44:25
507
原创 万年历
用java编写一个万年历我这里讲的是怎么用java编写一个万年历.首先你要找到一个中轴线(一个时间点),作为你推算你的算法的标准.有两种万年历.1.从1900年开始写,这样的话就只能算出1900年及以后的日历.2.随便一个日期开始推算你的算法.这样可以往前面推算以及向后面推算.我这里讲的是第二种万年历.思路:首先你要写几个方法,包括判断是否为瑞年的方法ruiNian()
2017-07-16 22:49:19
982
原创 两个整数交换的3中方法
//两个整数交换的第一种方法 第三方变量int x=4,y=8,z;z=x;x=y;y=z;System.out.println("x="+x+",y="+y);//两个整数交换的第二种方法 两个数相加int a=10,b=20;a=a+b;b=a-b;a=a-b;System.out.println("a="+a+",b="+b);
2017-07-16 21:43:31
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人