- 博客(66)
- 资源 (10)
- 收藏
- 关注
原创 SpringBoot+JWT+SpringSecurity对api进行授权保护
概述在生成环境中,我们通常需要对接口加入一些权限认证。我们可以使用session来记录当前请求用户的状态信息加以验证,但是当服务架构从单一演化到集群模式的时候,又会出现session共享问题。今天我们使用jwt对来解决接口权限认证的问题,在我看来jwt有如下好处。1. 无状态,不需要占用服务器的资源。2. 紧凑安全,特别适用于SSO场景,不管单机或者集群,都适用。3. 高效,无需多次...
2018-10-22 17:10:19
3042
1
原创 数据库事务的四大特性(ACID)以及事务的隔离级别
什么是数据库的事务?事务其实就是单个数据逻辑单元组成的对象操作集合,而数据库的终极目标就是使数据库从一个一致的状态转换到另一个一致的状态,这就是ACID中的一致性(Consistency),而原子性(Atomicity)、隔离性(Isolation)、持久性(Durability)是为了实现这个目标的手段。一个事务是一连串的操作组成,增删改查的集合。就好比java方法一样,java...
2017-09-27 10:50:08
18690
8
原创 IO流详解(三)转换流
第一章节我们讨论了,字符串文本操作是很常见的需求jdk帮我们封装好了一些操作字符流的reader和writer。普通的FileReader和FileWriter都是默认平台的编码方式。 当我们想用特殊的编码格式的writer和reader就需要使用今天所讲的转换流OutputStreamWriter和InputstreamReader。InputStreamReader和OutputStrea
2017-06-22 15:58:48
392
原创 IO流详解(二)字节流
第一讲地址:http://blog.csdn.net/qq_25448409/article/details/73527375上一章讲述了操作文本文件的流对象字符流,这一讲来介绍字节流。计算机里面所有的东西都是二进制,所有我们可以通过字节流操作任何格式文件,比如MP3,图片,视频等。虽然字节流可以操作所有格式的文件,但是如果要操作文字数据,优先考虑字符流。 字节流的命名也很巧妙啊,比如上一节提
2017-06-22 09:25:33
334
原创 IO流详解(一)字符流
java中的流对象分为两种:字节流和字符流。 其实严格来说,流只有字节流一种,因为任何数据都是二进制字节,只不过字符串文本操作是很常见的需求,所以jdk就帮我们封装好了一些操作字符流的对象reader和writer他们的底层都是字节流。这一小结主要讲的是字符流,流对象中以reader和writer结尾的都是字符流。一:FileWriter需求:将一些文字存储到硬盘一个文
2017-06-21 10:49:50
556
原创 java并发容器简述
Hashtable往里面添加任何对象的时候,都要锁定整个对象ConcurrentHashMap默认把整个容器分成16段每一次往里面插入的时候,只锁定16段中的一段。ConcurrentHashMap就是把锁给细化了,当很多线程往里面插入数据的时候,就可以并发的插入,只锁定当前这一块,而不需要锁定整个对象。它把大锁变成了小锁。
2017-06-07 16:25:30
387
原创 java数据结构——AvlTree(平衡二叉查找树)
package com.tig.tree;/** * 3, 2, 1, 4, 5, 6, 7, 10, 9, 8 * Created by Tig on 2017/5/19. */public class AvlTree> { private AvlNode root; public AvlTree() { root = null; }
2017-06-03 17:14:55
607
原创 剑指Offer——面试题22:栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析 如果,下一个弹出的数字刚好
2017-05-05 09:19:35
502
原创 剑指Offer——面试题8:旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。分析通过观察可以发现旋转之后的数组可以划分为两个递增序列的子数组,而前面
2017-05-02 23:09:10
448
原创 剑指Offer——面试题7:用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路当stack2中不为空时,在stack2中的栈顶元素是最先进入队列的元素,直接弹出。 如果stack2为空,把stack1中的元素逐个压入stack2.由于先进入队列的元素被压到stack1的低端,经过弹出和压入之后,就处于stack2的顶端,可以直接弹出。
2017-05-02 16:09:04
373
原创 剑指Offer——面试题6:重构二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析在二叉树前序遍历序列中,第一个数字总是树的根节点的值。但在中序遍历中,根节点的值在序列中间。所有的左子树都位于根
2017-05-02 13:02:06
389
原创 java数据结构——BinarySearchTree(二叉查找树)
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。
2017-03-30 23:23:19
1721
原创 java数据结构——Stack栈(线性表实现)
public class ArrayStack { private static final int DEFAULT_CAPACITY = 10; private int top; private E[] items; @SuppressWarnings("unchecked") public ArrayStack() { top = -1; items = (E[]
2017-03-29 22:56:08
306
原创 java数据结构——Stack栈(单链表实现)
package com.tig.stack;public class LinkedStack { transient Node first; public LinkedStack() { first = new Node<>(); } public boolean push(E data) { Node node = new Node(data, first
2017-03-29 21:42:47
725
原创 java数据结构——LinkedList(单链表)
Node节点定义package com.tig.list;public class Node { private E data; private Node next; //下一个节点 public Node(E data, Node next) { super(); this.data = data; this.next = next; }
2017-03-29 21:21:48
896
原创 java数据结构——ArrayList(线性表)
List接口package com.tig.list;import java.util.Iterator;public interface List { /** * 从列表中移除所有元素(可选操作)。 */ public void clear(); /** * 向列表的尾部添加指定元素 * @param e * @return */ public
2017-03-29 21:19:23
965
原创 关闭eclipse对js和xml,json的验证
我们在使用eclipse的时候,每次导入一些js框架有时候编译器会莫名其妙的报错。最近在用ueditor发现了这么问题,虽然你还是可以运行的,但是有红叉很难受。这个是eclipse对js的瞎验证问题,直接关闭验证就行了。打开eclipse:菜单Window - > Preferences然后搜索 validation 然后我们
2016-10-31 11:36:12
9462
原创 Json和Java对象之间的转化教程
使用技术:Jackson 框架需要导入的包: com.fasterxml.jackson.core jackson-databind 2.4.2 转化工具类:package com.tig.testJson;import java.util.List;import com.fasterxml.jackson.c
2016-10-10 17:18:37
1453
原创 从代码规范能看出来一个人是否真正热爱编程
目前大二,写代码已经两年了,第一门接触的是C语言,那时候学的时候看的是郝斌的C语言教程。我相信很多自学C语言的时候都看的是郝斌的视屏。相隔久远,虽然我很长时间也,没有在写C语言了,但是郝斌对现在的我,有很大的影响,知道现在我就觉得,当我们进入一个新的领域的时候,第一步往往更重要。如果这时候我们还有一个很优秀的启蒙老师的话,对以后的影响,真的非常巨大。扯远了。我为什么说郝斌对我的
2016-07-10 02:03:50
3135
1
原创 Mybatis绑定错误的原因及其解决整理
(项目开发某天,遇到这个错误,很郁闷找了几个小时才有解决)在使用Maven整合Spring + SpringMVC + MyBatis项目的时候项目的时候报以下错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)原因一:Mapper inte
2016-07-09 12:01:27
6225
原创 解决Maven项目下添加HttpServletRequest 或 HttpServletResponse需引用的依赖包报错
今天在开发中遇到了一个问题,项目中需要HttpServletRequest 和 HttpServletResponse 但是我项目是用maven启动的,需要手动导入servlet-api.jar包 我开始是这样导入的 javax.servlet javax.servlet-api 3.1.0 但是项目中报了莫名其妙的错误Caused by: java
2016-07-07 11:40:53
57295
4
原创 web开发中URL传递中文参数乱码解决
最近在开发一个系统中遇到了一个问题,当我们需要通过URL传递中文的时候,会出现乱码。比如这样解决办法:要想在URL中传递中文主需要在Toncat的server.xml中 65行左右添加上这一句 URIEncoding="UTF-8" connectionTimeout="20000" port="8080" prot
2016-05-21 14:34:58
766
原创 基于注解的Spring MVC 学习笔记
心得:我第一个接触的java web框架是Struts,当时学的真的是很心酸,没人指导我应该怎么学,只有通过视屏和看别的写得代码来学习,Struts1(当时不了解1已经过时)和Struts2一共学习一两个月,最后通过一个学生管理系统算是真正的弄懂了。当我Hibernate快学完的时候,我了解的SSH框架已经有淘汰的趋势,SSM不出意外会成为主流。当时我是懵逼的,作为菜鸟的我以为SSH学完就算是圆满
2016-05-11 16:15:11
652
原创 Jquery使用Ajax请求调用后台
很多时候我们都需要Ajax来请求返回数据,这样能提升效率。 但是直接的使用Ajax要写很多的东西,很麻烦,所以Jquery帮我们做了个封装。这个技术我感觉很重要,而且经常忘了怎么写,还是太菜,所以做一个笔记,遗忘了的时候可以看一看。先先看Controller层 private void post(HttpServletRequest request, HttpServletRe
2016-05-07 13:20:50
1201
原创 My97DatePicker日期控件总结
My97DatePicker我感觉是一款非常强大,而且好用的控件。为了防止遗忘,做次总结。1、下载My97DatePicker组件包 (下载完成之后解压及其,不要修改里面的内容)下载地址:http://www.my97.net/dp/down.asp2、在jsp文件中引入 3、使用方法 "onFocus="WdatePicker({is
2016-05-05 16:06:41
2114
原创 java操作数据库小工具--韩顺平SqlHelper
看韩顺平老师的视频时候非常喜欢的喜欢的一个小工具就是操作数据库的SqlHelper 所以我就又写了一遍,加了点注释,基本上能满足平常开发使用。
2016-03-02 19:31:41
6093
模拟测试框架Mockito简明教程
2017-10-28
Http权威指南(文字版)带目录
2018-09-04
Spring源码深度解析(第2版)带目录
2019-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅