搜索到与相关的文章
编程技术

Jetty 服务器架构分析(中)

接上一篇,说到XmlConfiguration,XmlConfiguration利用自己实现的IOC组装Server的全过程如下图所示:这里可以看到3个关键的配置文件,jetty.xml、jetty-deploy.xml、以及contexts/xxx.xml

编程技术

第二章 身份验证——《跟我学Shiro》

目录贴:跟我学Shiro目录贴身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能验证用户身份:principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primaryprincipal

系统 2019-08-29 22:00:47 1723

编程技术

【Lucene3.0 初窥】索引创建(2):DocumentWrite

上接《索引创建(1):IndexWriter索引器》1.3索引创建过程DocumentsWriter是由IndexWriter调用来负责对多个document建立索引的核心类,但整个索引过程并不是由一个对象来完成的。而是有一系列的对象组成的处理链(IndexingChain)来完成的(这个过程就像流水线生产汽车)。下面是DocumentWriter开始建立索引的源代码。//由IndexWriter调用的方法booleanaddDocument(Docume

系统 2019-08-29 21:59:47 1723

编程技术

J2SE 四大技术体系

讲到Java,很容易就想到程序设计语言。实际上,Java技术包含的内容远不止一种编程语言怎么简单。我们通常说的J2SE(java2标准版)就是在全局上对Java技术的一种称呼。1、J2SE技术体系结构下图包含了J2SE体系结构的全部重大相关技术,也描述了java程序运行不可缺少的过程。要精通J2SE,必须对J2SE的四大重要技术有深入的了解。(1)Java程序设计语言(2)JavaClass文件格式(3)Java虚拟机(4)Java应用程序接口(JavaA

系统 2019-08-29 21:59:37 1723

编程技术

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

今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。高质量代码的三要素我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。1.可读性强一提到可读

系统 2019-08-29 21:58:58 1723

Python

python垃圾回收机制

python垃圾回收机制一、什么是垃圾回收机制?垃圾回收机制(简称GC)是Python解释器自带一种机制,专门用来回收不可用的变量值所占用的内存空间二、为什么要用垃圾回收机制?程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来。python采用的是引用计数机制为主,标记-清除和

系统 2019-09-27 17:57:11 1722

Python

python 计算文件的md5值实例

较小文件处理方法:importhashlibimportosdefget_md5_01(file_path):md5=Noneifos.path.isfile(file_path):f=open(file_path,'rb')md5_obj=hashlib.md5()md5_obj.update(f.read())hash_code=md5_obj.hexdigest()f.close()md5=str(hash_code).lower()returnmd

系统 2019-09-27 17:57:00 1722

Python

python 返回一个列表中第二大的数方法

如下所示:#返回一个列表中第二大的数defsecond(ln):max=0s={}foriinrange(len(ln)):flag=0forjinrange(len(ln)):ifln[i]>=ln[j]andi!=j:flag=flag+1s[i]=flagifflag>max:max=flagprint(s)foriins:ifs[i]==max-1:breakprint(ln[i])second([1,2,7,4,5,6,8,5,3,3,9,9,1

系统 2019-09-27 17:56:57 1722