- 博客(9)
- 资源 (10)
- 收藏
- 关注
原创 Apache Shiro源码 拦截器过程
Apache Shiro是Java的一个安全框架,使用的人也越来越多,但很多人只是停留在了会使用的的阶段,可能配置文件也只是网上demo的复制修改,却不知道真正的含义是什么。今天我用shiro的拦截器为入口,简单的过一点shiro的源码 ,有错误的地方希望大家能给指出。首先我们看一下配置文件中拦截器的拦截规则,这里有两个拦截器,一个是formAuthenticationFilter 这个是shiro
2017-08-18 20:01:07 2745
原创 数据库(MySQL)的优化技巧
从表的结构出发:① 比如一张表中存在userName,userPassword,还有你的家庭住址,个人喜好之类的信息。相比起来我们对userName,userPassword的操作更加的频繁,那其他的个人信息存在这张表上并不是一个明智的选择,可以选择把个人信息放在另外一张表上,这样会让你的表有更好的性能。这个叫做“垂直分割”。是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数
2017-08-25 15:42:57 526
原创 为什么TCP连接的建立是需要三次,而断开却需要四次
TCP的为什么三次握手就可以建立连接:我先抛出一个命题,两个人想要正常沟通,至少保证双方都知道自己和对方的发送和接受功能是正常的。假设这里有两个人,server和client。现在client需要和server建立连接。① client->server : server,我想和你建立连接。(client什么都确认不了,因为他不知道server有没有接收到,也不能确定自己的信息有没有发出去)如果这个时
2017-08-24 16:34:29 3076 6
转载 ZooKeeper 初认识
一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果
2017-08-22 09:33:07 360
原创 MySQL 小心3306端口
接受这个项目的已经有一个月,但是在前几天,服务器上的项目突然跑不了,页面也时不时的刷新不出来,有时还直接提示服务器暂时不提供服务。后来检查发现是MySQL的原因(主要数据库也不是部署在这台服务器上,也不知道上个维护这个项目的师兄为什么要装,而且用户名密码居然是root,132465),由于MySQL 5.1.30以上版本的一个漏洞(当然是不是因为漏洞的原因,目前暂未知),导致一个后门程序会通过330
2017-08-12 10:46:16 16479
原创 Spring IoC(控制反转)和DI(依赖注入)的理解
接触过spring的对IOC和DI绝对不会陌生,但是对于初学者来说这两个词的概念是比较模糊的。今天我和大家分享一下我对spring框架中IOC和DI的理解。IOC(控制反转)首先IOC(Ioc—Inversionof Control)是一个思想,是来帮助我们设计出松耦合、可调性更高的程序。下面我举一个例子来说明一下什么是IOC。 比如说我们在A对象中new了一个B对象,那么我们就可以说A是依赖于B
2017-08-10 15:42:10 542
转载 大型网站系统架构的演化
一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜
2017-08-08 12:03:58 297
转载 JVM Finalize实现原理与代价
相信有很大一部分JAVA程序员是从C/C++开始的(在我印象里,本科必修课程没有JAVA),而JAVA在基本语义与C++保持一致的基础上,其更加面向对象,类型安全,RTTI等特性使大部分用惯了CC++的程序员对JAVA爱不释手,然而习惯于C++的程序员不可避免地会在JAVA中寻找C++的影子,其中最典型的就是析构函数问题。我们说JAVA在基本语义与C++保持一致,并不是说C++的所有特性J
2017-08-03 11:35:50 1475 1
转载 数据库 树形数据结构数据库的设计
修改预订树遍历现在,我们来看看存储树的另一种方法。递归可能很慢,所以我们宁可不使用递归函数。我们也希望最小化数据库查询的数量。我们最好只对每个活动进行一次查询。我们将从水平的方式展开我们的树。从根节点('Food')开始,并在其左边写1。按照树进行“水果”,并在其旁边写一个2。这样,在每个节点的左侧和右侧写一个数字时,沿着树的边缘走(遍历)。最后一个数字写在“食物”节点的右侧。在这
2017-08-01 17:44:17 5258 1
android-async-http-1.4.7.jar
2016-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人