Shiro学习笔记(二)UsernamePasswordToken源码简单解析 在shrio中,AuthenticationToken用于存储前端传来的登录信息,通俗来说就是用户名及密码等。而在这之中比较常用的就是UsernamePasswordToken。为了了解shrio的验证过程有必要先了解与验证相关的主要的几个类。首先看下shrio对UsernamePasswordToken的描述:/** * <p>A simple username/passwo...
Personal career schedule It's been almost one year since I started to work. Currently, I think that I can handle most of the problems which I meet during my daily work. Today, I just talked with HR in my company and actually,
html2canvas图片模糊问题解决方案 不多说,上代码 function test() { html2canvas($('#test'),{ dpi:1000, onrendered: function(canvas) { convertCanvasToImage(canvas); } }) } function convertCanvasToImage(canvas) {
js脚本实现自由复制百度文库文字 这几天查看百度文库的文档,当复制部分文字的时候发现百度文库对文本复制做了长度限制,而开通VIP则略显不必要,同时也为了复习下js脚本制作,这里制作一个能够自由复制文库文字的脚本。分析了下百度文库的限制方式,目测是通过js重写覆盖了默认的 ctrl+c的方法并限制了复制的文字长度,因此原来的基本思路就是自己重写一个方法再次覆盖 ctrl+c指令并将复制的内容直接复制到粘贴板上,但是脚本做好之...
解决ImportError: cannot import name 'ClockDisplay' 首先贴图:问题定位在fps.py中,pyglet.clock没有ClockDisplay方法,原因是安装了最新版的(1.4.0)pyglet,解决办法是安装1.3.0版本:Windows:pip install pyglet==1.3.0Linux:wget https://bitbucket.org/pyglet/pyglet/downloads/pyglet-1.3.0...
Java查看class文件字节码 现在对Java的class文件反编译工具功能已十分强大,强大的反编译工具使得我们能够轻松的查看class文件对应的Java代码,但是有时候我们为了学习及研究,需要查看class文件对应的字节码,这里提供一个简单的指令来查看:假设我们现在需要查看single.java的字节码:在路径栏其输入cmd并按回车打开指令框:首先我们需要生成class文件:javac Single.jav...
Java 基于volatile关键字修饰的变量在并发中不一致性的问题 这几天在复习多线程及高并发的相关知识。volatile关键字一般认为是一种较轻量级的多线程并发解决方案。确实,使用volatile关键字所修饰的变量能够保证变量值一旦更新则所有线程都能够看到最新的值,但这并不意味着使用volatile关键字修饰的变量在做运算操作时能够保证数据的一致性,因为Java的运算操作并非为原子操作。下面我们举个例子:public class test { pub...
poi 解决读取整数会转为double问题 poi默认读取数值时会将其转为double,但有些时候这样做会带来数据的不准确,比如Excel里是1而读取出来的数值时1.0,因此我们需要将真正的数值获取到。这里可以先检测当前cell格式,若为数值则将单元格强制转为string类型再获取stringValue,如此可获取真实的数值,代码如下: //校验数值型单元格 private static String validateC...
使用HttpURLConnection传递文件及参数 这几天在研发公司自用的excel校验工具,需要将后台存储的excel通过http传递到excel校验服务端同时传递相关的参数,查询网上的解决方案并没有适合的,这里结合网上提供的解决方案给出我自己的解决办法:Http传输工具类方法: /** * 文件上传 * @param httpUrl 文件上传的url * @param uploadFilePath ...
Shiro学习笔记(三)权限验证的两种方式 一般来说,项目中能用两种方式进行权限验证:手动调用shrio提供的login方法并捕捉异常或者由shrio自己验证并返回验证的异常信息。网上对于shrio的验证流程已经有很多这里不再具体说明。手动调用shrio提供的login方法 @RequestMapping("/login") public String login(HttpServletRequest request...
选择排序 Visual Basic, C, Java, Python3及JavaScript的实现 Visual Basic实现:Private Sub Command2_Click() Dim bubbleList(4) As Integer bubbleList(0) = 1 bubbleList(1) = 11 bubbleList(2) = 132 bubbleList(3) = 21 bubbleList(4) = 43 l...
冒泡排序 Visual Basic, C, Java, Python3及JavaScript的实现 Visual Basic实现:Private Sub Command1_Click() Dim bubbleList(4) As Integer bubbleList(0) = 1 bubbleList(1) = 11 bubbleList(2) = 132 bubbleList(3) = 21 bubbleList(4) = 43 l...
通过Executors工具类创建线程池的隐藏风险 最近看了下阿里开发手册,其中有一条写的是通过Executors工具类创建的线程有可能会OOM。因为平时处理多线程问题的时候多以ExecutorService配合Excutors使用,专门查看了下源码,这里记录下加深印象。通过Executors工具类创建线程池一般有4种方式:newFixedThreadPool:创建一个有固定线程数的线程池。newSingleThreadExecutor...
ExecutorService的invokeAll方法详解 平时工作中因为用到ExecutorService的频率略多,而在这之中invokeAll方法又是常用方法,因此这里详细解读下invokeAll方法。首先贴上源代码:public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) ...
Spring Boot 通过@PropertySource或者@PropertySources实现设置多配置文件 Spring Boot 官网使用的是application.properties文件来实现文件的配置。但是实际情况下一个配置文件是不够用的,比如项目集成redis,mq,以及数据库比如mysql的时候,多个配置文件有利于开发及维护的管理。Spring Boot是通过@PropertySource或者@PropertySources来实现多配置文件的。首先看下@PropertySource源码:...
Spring Boot 自定义Controller所在路径 Spring Boot 官方默认controller包需要和启动类同级,但正常开发这样做有些不规范,因此需要通过其他方式将Controller及启动类进行分离。解决办法是在启动类上添加@ComponentScan注解:@ComponentScan(basePackages = {"项目路径"})这里举例,假设这里项目路径如下:这里@ComponentScan可以加在启动类上:...
js 绘制2D机柜(二)2D机柜的进阶绘制 上一篇写了基础的2D机柜绘制,今天这篇记录下机柜绘制的进阶篇。本篇主要是就数据封装及机柜界面的优化。首先是数据封装,正常来说数据的封装不会如上篇那么简单,这里加入更详细的数据用于展示信息,所需封装的数据如下: //configuration 机柜配置信息 //cabinet_id 机柜id //u_number ...
Shiro学习笔记(一)ThreadContext源码解析 最近有空,看了下shiro源码,这里写下来用以加深记忆。本篇记录下ThreadContext类的源码解析。本篇用到的ThreadLocal及ThreadLocalMap的相关知识戳这里。首先看下ThreadContext类的说明:/** * A ThreadContext provides a means of binding and unbinding objects to th...