源码

eclipse下编译openfire3.9.1源码

让人想犯罪 __ 提交于 2020-01-02 03:33:10
[一]、下载源码 打开网址: http://www.igniterealtime.org/downloads/source.jsp 选择目前最新版本 openfire_src_3_9_1.zip 下载。 [二]、配置Eclipse项目 1、把下载好的 openfire_src_3_9_1.zip 压缩包直接解压到Eclipse的工作目录(以 D:\openfire\ 如下图为例) 2、把 openfire_src\build\eclipse 目录下的文件夹setting、文件classpth、文件project全部copy到 openfire_src\ 目录下,然后把openfire_src\classpth、openfire_src\project修改成Eclipse工程配置文件格式:openfire_src \.classpath 、openfire_src \.project (如果无法修改文件名,copy任一现有项目的文件后修改其内容亦可)。 3、然后打开Eclipse,选择 File –> Import… –> Existing Projects into Workspace 选择D:\openfire 导入即可: 导入后目录结构如下: 3、项目导入后编译错误的解决 目录:/openfire/src/plugins/clustering/src/java

OpenFire源码学习之三:在Eclipse中构建源码

雨燕双飞 提交于 2020-01-02 03:32:46
源码搭建 下载地址: 地址: http://www.igniterealtime.org/downloads/source.jsp 环境准备 第1步: 在官网上在下最新源码,这里是3.8.1。解压后得到如下图所示: 第2 步: 在IDE工具上新建一个java普通工程命名openfire 第3步: 将解压后的openfire_src目录的下的所有文件源码复制到此项目下,例图所示 这里稍等片刻后,看到如下效果图: 上图中在工程上出现了错误信息报告,不用着急。原因是刚导入的项目还有些jar包没有加进来。继续往下看吧! 第4步: 右键点击项目选择Properties,在"Java Build Path"的"Libraries"中添加build/lib下所有的jar包。如下图所示: 注意:这个lib包下还有三个3包,全都加进来吧: 第5步: 加载完这些jar后,不要关闭当前窗口。继续点击Source选项卡 第6步: 点击Add Folder...如图选择: 为了方便编辑,把插件的源代码显示出来,在Properties文件夹中选择Source,Add Folders,在Build Path配置中把 /openfire_src/src/i18n 、 /openfire_src/src/resources/jar 、 /openfire_src/build/lib/dist 文件夹添加到

elasticsearch ik分词器安装

眉间皱痕 提交于 2020-01-01 23:33:42
1.下载 ​ 官方网站 https://github.com/medcl/elasticsearch-analysis-ik , 告诉你,可以下载源码,然后自己去编译,这样比较麻烦,可以直接它的版本库中下载编译好的历史版本 https://github.com/medcl/elasticsearch-analysis-ik/releases 注意要下载编译好的包,而不是源码包 例如得到包 elasticsearch-analysis-ik-1.9.5.zip 进入elasticsearch的plugins目录,解压,重命名 analysis-ik 然后将 analysis-ik/config 整个拷贝到 elasticsearch-2.3.5/config/ik/ 下面 如果elasticsearch-2.3.5/config 下面没有ik目录,需要新建 进入 elasticsearch-2.3.5/bin 重启elasticsearch服务 ./ elasticsearch ​ 2.验证 ​ 可以安装 Postman - REST Client 工具测试分词的效果 输入 http://10.3.32.83:9200//hh/_analyze?analyzer=ik_max_word text=华中科技大学同济医学院附属同济医院 测试 学习视频 复制链接,在浏览器打开

Springmvc源码解析

前提是你 提交于 2020-01-01 23:33:36
复制链接,在浏览器打开 tomcat源码解析 https://study.163.com/course/introduction/1209535854.htm Springmvc源码解析 https://study.163.com/course/introduction/1209536851.htm dubbo源码解析 https://study.163.com/course/introduction/1209648816.htm 来源: 51CTO 作者: yaojinquan 链接: https://blog.51cto.com/3921161/2463643

Java8 ArrayList源码分析

孤街浪徒 提交于 2020-01-01 14:57:46
java.util.ArrayList 是最常用的工具类之一, 它是一个线程不安全的动态数组. 本文将对JDK 1.8.0中ArrayList实现源码进行简要分析. ArrayList 底层采用 Object[] 来存储, 每次添加元素前都会检查数组是否有足够空间容纳新的元素. 若数组空间不足则会进行扩容操作, 即创建一个容量更大的数组 并将已有的元素复制到新数组中. 默认情况下新数组的容量是当前容量的1.5倍. ArrayList使用 Arrays.copyOf 和 System.arraycopy 调用原生(native)方法进行数组复制, 以提高效率. addAll , removeAll 等方法中通常使用 c.toArray 方法来获取容器中所有元素. ArrayList提供了 iterator() 和 listIterator() 两种迭代器, 前者只能向后移动, 而后者可以双向移动. iterator() 只能删除上一个访问的元素, 而 listIterator() 还可以在游标位置添加元素. 两种迭代器都采用fail-fast机制, 即使用 modCount 记录结构性改变(添加删除元素等)的次数, 迭代器在移动前会检查 modCount 是否发生改变. 若 modCount 改变, 则抛出异常中止迭代. 该方法是为了防止其它线程修改容器造成迭代结果不一致.

Java集合之HashSet源码分析

[亡魂溺海] 提交于 2020-01-01 14:56:22
一、HashSet简介   HashSet是Set接口典型实现,它按照Hash算法来存储集合中的元素,具有很好的存取和查找性能。主要具有以下特点: 不保证set的迭代顺序 HashSet不是同步的,如果多个线程同时访问一个HashSet,要通过代码来保证其同步 集合元素值可以是null   当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据该值确定对象在HashSet中的存储位置。在Hash集合中,不能同时存放两个相等的元素,而判断两个元素相等的标准是两个对象通过equals方法比较相等并且两个对象的HashCode方法返回值也相等。   下面的例子说明了上述特性: public class Person { String name; int age; public Person(String name,int age) { this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age

Linux下源码编译安装详解

China☆狼群 提交于 2020-01-01 13:35:11
Linux下源码编译安装详解 转载 Zebul博 发布于2017-09-07 13:15:03 阅读数 14896 收藏 更新于2017-09-07 13:15:03 前言 源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h> int main(void) { fputs(“Hello, world!\n”, stdout); return 0; } 要先用编译器处理一下,才能运行。 $ gcc test.c $ ./a.out Hello, world! 对于复杂的项目,编译过程还必须分成三步。 $ ./configure $ make $ make install 编译过程流程图: 一.编译的具体过程 1. 配置(configure) 编译器在开始工作之前,需要知道当前的系统环境,比如标准库在哪里、软件的安装位置在哪里、需要安装哪些组件等等。这是因为不同计算机的系统环境不一样,通过指定编译参数,编译器就可以灵活适应环境,编译出各种环境都能运行的机器码。这个确定编译参数的步骤,就叫做"配置"(configure)。 这些配置信息保存在一个配置文件之中,约定俗成是一个叫做configure的脚本文件。通常它是由autoconf工具生成的。编译器通过运行这个脚本,获知编译参数。

FBKVO源码学习

可紊 提交于 2020-01-01 12:29:45
用法: 1. 初始化并 /*--> */ /*--> */ - (FBKVOController *) kvoCtrl { if (! _kvoCtrl) { _kvoCtrl = [ FBKVOController controllerWithObserver : self ]; } return _kvoCtrl ; } 2. 添加观察者两种方式,target和函数式编程 /*--> */ /*--> */ [ self . kvoCtrl observe: self . person keyPath: @"age" options: 0 action: @selector (fx_observerAge)]; [ self . kvoCtrl observe: self . person keyPath: @"name" options:( NSKeyValueObservingOptionNew) block:^( id _Nullable observer, id _Nonnull object, NSDictionary< NSString *, id > * _Nonnull change) { NSLog( @"****%@****",change); }]; 源码查看: 中间也生成一个信息类,来保存KVO信息。 /*--> */ /*--> */ - ( void

Eclipse(STS)安装反编译插件

不羁的心 提交于 2020-01-01 11:33:44
Eclipse上安装反编译插件,可以解决我们有些类不能查看源码的问题: 1.在eclipse上搜索decompiler并下载: 2.安装: 3.配置: 可以选择默认的反编译工具,我这里选择的是JD-Core 设置一下查看源码的方式: 到这里就算配置完成了,这是按住Ctrl+鼠标左键查看源码,以前没有源码的类也可以通过反编译看到源码了。 来源: CSDN 作者: 三分魔系 链接: https://blog.csdn.net/C_AJing/article/details/103790965

SpringMVC源码(七)- doDispatch - RequestMappingHandlerAdapter的handle(方法的调用)

你说的曾经没有我的故事 提交于 2020-01-01 05:01:38
目录 一、RequestMappingHandlerAdapter结构 1、完成ControllerAdvice注解相关初始化 2、各种类型的解析器站初始化 1)、argumentResolvers 初始化: 2)、initBinderArgumentResolvers(数据绑定解析器列表)初始化: 3)、returnValueHandlers 初始化: 二、RequestMappingHandlerAdapter的handle方法 1、invokeHandlerMethod 2、invokeForRequest(调用真实请求方法) 1)、getMethodArgumentValues(参数解析) 2)、doInvoke(真正的Controller方法调用) 3、handleReturnValue(解析方法调用的结果) 总结 一、RequestMappingHandlerAdapter结构 从层级结构看,主要实现了BeanFactoryAware、ApplicationContextAware、HandlerAdapter和InitializingBean。其他回调方法都是常规赋值,主要准备工作在 afterPropertiesSet 回调方法中完成。 @Override public void afterPropertiesSet() { // Do this first, it