Java
落雪染轻愁
这个作者很懒,什么都没留下…
展开
-
ajax请求遇到session过期又被过滤器拦截的解决方案
最近写项目碰到一个比较棘手的问题,就是当用户session过期时,访问html页面,浏览器会加载缓存里的html页面,导致没有被过滤器拦截,而里面的ajax请求却被过滤器拦截了,导致页面什么都没有显示。 在网上找了一些解决方案,感觉都比较复杂,于是自己想了一个解决方案,也拿出来给大家参考一下。在过滤器里判断是否为ajax请求,ajax请求的请求头里有ajax特有的参数X-Requested-...原创 2018-08-05 19:43:18 · 1073 阅读 · 0 评论 -
《算法导论》红黑树详解(二):Java实现Demo
《算法导论》红黑树详解(一):概念使用Java简单地实现红黑树代码如下:/** * 红黑树实现demo */public class RedBlackTree<Key extends Comparable<Key>> { private static final boolean RED = false; private static fin...原创 2018-11-03 00:45:31 · 392 阅读 · 0 评论 -
源码分析SpringBoot2.x 静态资源被拦截器拦截的原因
1、静态资源路径的注册先来看WebMvc的自动配置类:WebMvcAutoConfiguration,它里面有个内部类:WebMvcAutoConfigurationAdapter,其中有个方法addResourceHandlers,实现如下@Configuration//引入EnableWebMvcConfiguration对象到容器中@Import(EnableWebMvcConfig...原创 2018-11-27 22:50:51 · 1712 阅读 · 0 评论 -
SpringBoot 2.x使用缓存注解时,自定义RedisTemplate序列化对象为json无效的原因,及解决办法
首先我们要知道,当使用缓存注解时,RedisCacheManager帮我们创建RedisCache来作为缓存组件,RedisCache通过操作redis缓存数据。而在springboot 1.5.x,RedisCache又是通过RedisTemplate来操作redis缓存数据。而在srpingboot 2.x,RedisCache没有使用到RedisTemplate。下面来看srpingboo...原创 2018-12-06 14:58:58 · 4844 阅读 · 3 评论 -
SpringBoot2.x中Actuator的health响应信息不完整的解决方法
使用SpringBoot2.x中的Actuator时,我们通过浏览器发送health请求来查看健康信息,但是详细的健康信息是默认不显示的,例如:{ status: "UP"}如果我们想要查看详细信息,应在application.properties做如下配置:management.endpoint.health.show-details=always这个属性有3个值可选:never...原创 2018-12-23 22:52:00 · 4480 阅读 · 1 评论 -
Java运算符>>与>>>区别详解
1、>>带符号右移(相当于除以2)。正数右移高位补0,负数右移高位补1。比如:4 >> 1,4的原码为0000 0000 0000 0000 0000 0000 0000 0100,右移一位后为0000 0000 0000 0000 0000 0000 0000 0010,转成十进制为2。-4 >> 1,-4的原码为1000 0000 0000 0000 ...原创 2019-03-15 14:47:50 · 2964 阅读 · 6 评论 -
Java中volatile关键字
当多个线程进行操作共享数据(内存中)时,线程先读取内存中的数据,并各自缓存一份,然后对缓存数据进行修改,最后再写入到内存中,但有时候由于程序执行速度快(如while操作),导致没有及时去内存中读取新的数据,而此时有可能其它线程已经修改了共享的数据,这就可能导致程序执行出现不可想象的偏差,而volatile就是为了防止这种偏差出现。volatile可保证内存中的数据可见(就是每次都会去读内存中的数...原创 2019-07-10 00:07:57 · 204 阅读 · 0 评论