- 博客(16)
- 收藏
- 关注

原创 Java WebSocket 中获取httpSession详解
一:本文适用范围本文使用J2EE规范原生的WebSocket开发,适用于项目中WebSocket的使用比较少的情况,而Spring WebSocket封装的比较繁重,反而不适用于实际项目中的情况。自己在开发时就是由于项目的原因,不想用Spring-WebSocket,所有用了原生的,但是找了好多帖子试了好多方法都不行,甚至将原生的和Spring-WebSocket混用了也是不行,看源...
2019-05-14 17:44:17
4653
1
原创 映射性集合:HashMap(LinkedHashMap),Hashtable(Properties),TreeMap
注: 以下代码均来自Java8。
2024-05-16 16:26:03
609
原创 线性集合:ArrayList,LinkedList,Vector/Stack
共同点:都是线性集合。ArrayList 底层是基于数组实现的,并且实现了动态扩容关键字段 elementData 使用了 transient 关键字修饰,这个关键字的作用是,让它修饰的字段不被序列化。仔细琢磨,发现不仅尽可能少的占用存储空间,反序列化时还巧妙的恢复了原来的顺序
2024-05-11 16:15:10
634
原创 面向对象的三大特性:封装、继承、多态
封装是面向对象的核心思想。是以类为载体,将对象的属性和行为封装起来,对外隐藏其实现细节。继承原有的功能,增加自己新的功能,实现了拓展和复用。将父类对象应用于子类的特征就是多态。
2024-05-10 14:46:36
572
1
原创 Redis缓存穿透、缓存血崩、缓存击穿的原因和解决方案
缓存穿透指查询一条根本不存在的数据,缓存和持久层都不会命中。 通常出于容错考虑,数据库不存在的数据不会写入缓存,缓存穿透将导致每次查询不存在的数据,都会穿过缓存,去查询持久层,从而失去了缓存保护持久层的作用。下图为缓存穿透示意图:缓存穿透问题可能会使后端存储负载加大,由于很多后端持久层不具备高并发性,甚至可能造成后端存储宕机。通常可以在程序中统计总调用数、缓存层命中数、如果同一个Key的缓存命中率很低,可能就是出现了缓存穿透问题。一般造成缓存穿透的基本原因有两个。第一,自身业务代码或者数据出现问题
2021-06-11 11:34:34
898
原创 OAuth2.0的四种授权方式
简介OAuth2.0是一种授权机制,主要核心是向第三方应用颁发令牌(token)。有四种授权方式:授权码,隐藏式,密码式,凭证式。一. 授权码指先向第三方应用申请一个授权码,然后再用该码获取令牌。该方式最常用也最安全,适用于有后端的应用。授权码通过前端获取传送,后端获取存储令牌,并且与第三方的通信都通过后端完成。这样可以避免令牌泄露。典型应用:第三方登录1.应用A跳转到第三方应用B,B应用要求用户登录,并且询问是否授权给A应用,同意后,跳回A指定的回调地址,同时传回授权码。//A应用跳转B应用
2021-06-10 12:21:28
3048
原创 JWT token过期自动续期
前言越来越多的项目放弃使用传统的session方案,而使用token与后端交互(特别是App项目)。实现1.登录成功,后端返回access_token和refresh_token,客户端缓存这两种token;2.客户端使用access_token请求接口资源,若token过期,客户端需使用refresh_token请求刷新token接口刷新token;3.后端接收到refresh_token刷新请求后,验证refresh_token是否过期。若过期,拒绝刷新,客户端收到状态后,跳转到登录页;若
2021-06-10 09:45:13
1177
原创 java.lang.IllegalArgumentException:Result Maps collection dose not contain value for java.lang.Long
MyBatis报错如标题,说明是resultMap配置错了,resultMap应该配置自定义的结果集映射,如果直接配置类名,应该用resultType,如:resultType=“java.lang.Long”。注:MyBatis会检查所有Mapper.xml中的resultMap,而不止是当前查询的检查(这个很坑,自己明明昨天测试好的,今天出问题了,找半天,结果发现是别人提交的没测试好的代码的问题。最好测试好的代码再吧,不要盲目自信,我不愿意坑别人,也不喜欢别人坑我)...
2021-05-17 10:57:01
832
1
原创 SpringCloud Feign 传参问题及传输Date类型参数的时差
1.多参数表单类型传输 @PostMapping("/service/system/advertiser/save") Response<Boolean> saveAdvertiser(@RequestParam("username") String username, @RequestParam(...
2018-04-09 16:47:09
12742
原创 Java使用Spring的JavaMailSenderImpl发送Email
spring-context.xml配置 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <!-- 发送服务器,根据当前使用的邮件服务商决定 --> <property name="host" value="smtp.exmail.qq.com
2018-01-11 17:30:00
2999
原创 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 错误
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 3 milliseconds ago. The last packet sent successful
2018-01-11 16:46:42
457
原创 Jedis 实现多条件查询
封装的Redis操作的工具类这里面存取Redis的key和value全部都先序列化了的public class DefaultJedisPoolClient { private static JedisPool pool = null; //封装的序列化接口 private ISerializer serializer; public Set<String> sinte
2017-11-17 17:22:12
2847
原创 npm安装包失败的解决
1.安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org2.直接配置npm的路径npm config set registry https://registry.npm.taobao.org*这种做法可以在任何地方使用npm安装包的时候都好使。
2017-11-13 14:13:24
2079
原创 将JSON格式字符串转成对象、数组、取值等(注意事项)
将JSON格式字符串转成对象、数组、取值等将前端给我们传的JSON格式的字符串解析,得到我们想要的数据 例:String data = "[{\"name\":\"认证测试\",\"data\":\"{\"smsConfigId\":\"1\",\"idCode\":\"ceshiSms\",\"smsMsg\":\"您的验证码为:#{code}\"}\",\"category\":\"1\"},
2017-10-19 11:33:29
2462
原创 Html静态模拟登陆过程中遇到的问题
1.传值的问题:通过URL传值:两种方式(基本一样)1)location对象登陆页面:window.location = "register.html?uname="+uname+"&pwd="+pwd;2)window对象的open()方法,也是将URL传进去接收页面: var url1 = window.location.href; var str = url1.
2017-06-10 17:10:21
439
原创 JAVA SE集合总结
一、集合的结构框架 1.线性集合Collection,所有线性集合需要实现Collection接口映射性集合Map,所有映射性集合需要实现Map接口Collection接口:List接口和Set接口List接口的实现类:ArrayList类,LinkedList类,Vector(Stack)Set接口的实现类:HashSet(Linke
2017-06-02 20:03:19
622
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人