目录贴:跟我学Shiro目录贴在某些项目中可能会遇到如每个账户同时只能有一个人登录或几个人同时登录,如果同时有多人登录:要么不让后者登录;要么踢出前者登录(强制退出)。比如springsecurity就直接提供了相应的功能;Shiro的话没有提供默认实现,不过可以很容易的在Shiro中加入这个功能。示例代码基于《第十六章综合实例》完成,通过ShiroFilter机制扩展KickoutSessionControlFilter完成。首先来看看如何配置使用(sp
系统 2019-08-29 22:00:43 1846
当所有的静态查找结构添加和删除一个数据的时候,整个结构都需要重建。这对于常常需要在查找过程中动态改变数据而言,是灾难性的。因此人们就必须去寻找高效的动态查找结构,我们在这讨论一个非常常用的动态查找树——二叉查找树。二叉查找树的特点下面的图就是两棵二叉查找树,我们可以总结一下他的特点:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值(3)它的左、右子树也分别为二叉查找树我们中
系统 2019-08-29 21:59:55 1846
上接《索引创建(1):IndexWriter索引器》1.3索引创建过程DocumentsWriter是由IndexWriter调用来负责对多个document建立索引的核心类,但整个索引过程并不是由一个对象来完成的。而是有一系列的对象组成的处理链(IndexingChain)来完成的(这个过程就像流水线生产汽车)。下面是DocumentWriter开始建立索引的源代码。//由IndexWriter调用的方法booleanaddDocument(Docume
系统 2019-08-29 21:59:47 1846
——对用例模型及其应用的一次有益的探讨前言:这是一次对用例模型的探讨。怎样建立用例模型,怎样编写用例说明,它与需求规格说明书有什么区别,它能替代需求规格说明书吗?也许在这里可以找到你要的答案。进入软件业稍微久一点儿的人恐怕都不会陌生,软件开发的最初阶段都是谈需求、写需求规格说明书。需求规格说明书是与客户最终确认到纸上的,非常正式的公文。软件开发应当做什么,做成什么样子,什么东西不做,项目范围有多宽,需求规格说明书都是白纸黑字写得清清楚楚,谁都无法抵赖。所以
系统 2019-08-29 21:59:01 1846
终于到了该说说领域驱动设计的时候了。我们在这场关于代码质量的讨论中,从代码可读性开始,讨论了代码复用性、设计模式,然后探讨了职责驱动设计。代码可读性是对代码质量最基本的要求,可惜我们仍有做得不够的(即使那些开发程序很多年的老程序员)。代码复用是提高代码质量的最初级阶段,但是在一个多人开发的项目团队中,围绕代码复用值得讨论的问题依然非常多,它依然是一个非常复杂的问题,甚至有时它不再仅仅是一个技术问题,而是一个管理问题。唉,提高代码质量的道理漫漫兮同志们要上下
系统 2019-08-29 21:58:55 1846
克隆的实现方法有两种:浅拷贝(shallowcopy)与深拷贝(deepcopy)。浅拷贝是指当对象的字段值被拷贝时,字段引用的对象不会被拷贝。例如,如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个浅拷贝,那么两个对象将引用同一个字符串。深拷贝是对对象实例中字段引用的对象也进行拷贝的一种方式,所以如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个深拷贝的话,我们将创建一个新的对象和一个新的字符串--新对象将引用新字符串。需要注意的是执
系统 2019-08-12 09:29:47 1846
如何在PYTHON里运用私有属性和方法classFile:def__init__(self,name):self.name=nameself.code="ABCDEF"file_A=File("file_A")#假设我们有一个类,叫做文件类,设置一个对象file_A。file_A.code#如果直接调用属性,是可以看到属性里面有什么,但是如果这是个机密的密码不能公布,是不能这么处理的。classFile:def__init__(self,name):sel
系统 2019-09-27 17:57:30 1845
一、listPython内置的一种数据类型是列表:listlist是一种有序的、可变的集合,可以随时添加和删除其中的元素。实例:列表:classmates>>>classmates=['Michael','Bob','Tracy']>>>classmates['Michael','Bob','Tracy']len()函数获取list元素的个数>>>len(classmates)3用索引来访问list中每一个位置的元素:索引从0开始,最后一个元素的索引是le
系统 2019-09-27 17:57:17 1845
一、写在前面说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和ICU。别人眼中的程序员:飞快的敲击键盘、酷炫的切换屏幕、各种看不懂的字符代码。然而现实中的程序员呢?对于很多程序员来说,没有百度和Google解决不了的问题,也没有ctrl+c和ctrl+v实现不了的功能。那么身为一个程序员,要怎么让自己看起来更加“专业”呢?答案就是加快自己的打字速度了,敲的代码可能是错的,但这个13却是必须装的!然而还是
系统 2019-09-27 17:56:59 1845
前言我在使用mac安装virtualwrapper的时候遇到了问题,搞了好长时间,才弄好,在这里总结一下分享出来,供遇到相同的问题的朋友使用,少走些弯路。问题说明:Mac默认系统的python2,而我自己用的是brew安装的python3下面是我安装过程中出现的问题1.安装virtualwrapper打开终端,输入如下的命令pip3installvirtualenvpip3installvirtualenvwrapper2.在配置文件~/.bash_pro
系统 2019-09-27 17:56:58 1845