- 军军小站|张军博客
搜索到与相关的文章
编程技术

第六章 Realm及相关对象——《跟我学Shiro》

目录贴:跟我学Shiro目录贴6.1Realm【2.5Realm】及【3.5Authorizer】部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现。1、定义实体及关系即用户-角色之间是多对多关系,角色-权限之间是多对多关系;且用户和权限之间通过角色建立关系;在系统中验证时通过权限验证,角色只是权限集合,即所谓的显示角色;其实权限应该对应到资源(如菜单、URL、页面按钮、Java方法等)中,即应该将权限字符串存储到资源实体

系统 2019-08-29 22:00:46 1893

编程技术

【排序结构4】 归并排序

归并排序O(N*logN)是另一种效率很高的排序方法。"归并"的含义就是将两个或两个以上的有序表组合成一个有序表。加入两个有序表的长度分别为m、n,则一次归并的时间复杂度为O(m+n)。我们可以用"归并"的思想来实现排序。假如待排序列含有n个关键字,则可看成是n个有序的子序列,每个序列长度为1,然后两两归并,得到[n/2]个长度为2或1的子序列,在两两归并....,知道得到一个长度为n的有序序列为止。这就是2-路归并算法。下图就是2-路归并排序的一个例子:

系统 2019-08-29 21:59:43 1893

编程技术

一堂如何提高代码质量的培训课(3)

3)职责驱动设计和领域驱动设计前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的类就形成了。通过以上分析形成的类,往往和现实世界的对象是对应的。正因为如此,软件世界的这些类

系统 2019-08-29 21:58:56 1893

各行各业

zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。本文简单分析zookeeper的工作原

系统 2019-08-12 09:27:35 1893

各行各业

测试Storm的多源头锚定

过程,Spout发送msgid1-10一级Bolt,msgid1的tuple做为基本组合tuple,其他8个和一组合,然后发送给二级Bolt,同时单个msgid对应的tuple都ack一次,msgid1对象tuple,acker将会跟踪8个二级bolt处理情况.二级Bolt,发送ackfail(模拟处理失败)结果:在spoutfail下出现msg1-9都失败的情况.拓扑代码packagestorm.starter;importbacktype.storm.

系统 2019-08-12 09:26:55 1893

Python

小白学Python

本人财务狗一枚,编程基础为0。因为提升工作效率的主观愿望(备注:懒),准备开始学点python。因为平时比较忙(事多),可能更新的非常慢,估计2019年11月开始正式学习更新。给自己立个flag,主要学习内容两个:(1)提升办公效率(2)pandas库学习day1基础软件安装安装anaconda\pycharm\cmder软件介绍:Pycharm是集成开发环境(操作平台),Anaconda是集成环境管理器(库包),cmder好用的程序操作命令参考文档:Py

系统 2019-09-27 17:56:38 1892

Python

python学习13:分解质因数

'''将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。'''frompip._vendor.distlib.compatimportraw_inputdeftest1(n):print("%d="%n,end='');whilen>1:foriinrange(2,n+1):ifn%i==0:n=int(n/i)ifn==1:print("%d"%i,end='');else:print("%d*"%i,end='');breakdeft

系统 2019-09-27 17:55:28 1892

Python

【Python】线程和协程分别适用于什么情况?

原文链接:https://zhuanlan.zhihu.com/p/35179605(现在人工智能非常火爆,很多朋友都想学,但是一般的教程都是为博硕生准备的,太难看懂了。最近发现了一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默。所以忍不住分享一下给大家。点这里https://www.cbedai.net/ialexanderi可以跳转到教程。)链接:https://zhuanlan.zhihu.com/p/35179605前言关于网络IO,同步,

系统 2019-09-27 17:54:54 1892

Python

[Python] 汉诺塔问题(递归)

汉诺塔的移动可以用递归函数非常简单地实现。题目:请编写move(n,a,b,c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法[思路]假设:A柱子只有两个盘,上面为n-1个小盘,下面为1个大盘;B:0盘;C:0盘移动步骤①:A柱的n-1个盘,借助C柱的缓冲,移动到B柱,move(n-1,a,c,b)移动步骤②:A柱的1个盘,借助B柱的缓冲,移动到C柱,move(1,a,b,c)移动步骤③:B

系统 2019-09-27 17:54:20 1892

Python

python 并发编程 非阻塞IO模型原理解析

非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道

系统 2019-09-27 17:53:07 1892