1 / 18
文档名称:

后端跨域请求解决方案.docx

格式:docx   大小:24KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

后端跨域请求解决方案.docx

上传人:qiang19840906 2018/10/5 文件大小:24 KB

下载得到文件列表

后端跨域请求解决方案.docx

文档介绍

文档介绍:后端跨域请求解决方案
篇一:跨域解决方案
解读——一、 Directory
在使用中,第一个接触的类一般是Directory。它是Lucene存储的一个抽象,由此派生了两个类:FSDirectory和RAMDirectory,用于控制索引文件的存储位置。使用FSDirectory类,就是存储到硬盘;使用RAMDirectory类,则是存储到内存。
图1-1 存储抽象实现UML图
如图1-1,显示了这种关系。而看Lucene代码会发现,RAMDirectory和FSDirectory还分别有一个内嵌类。这个内嵌类实际上是通过工具从Java版本转移过来,工具自动产生的。那就先看看Java代码的结构,然后再来看转移过来生成的内嵌类是干什么用的。
Directory类一共有11个方法,看看类的注释就知道,翻译过来也是没有做非常细致的调整。比如,注释上有这句话“Java's i/o APIs not used directly, but rather all i/o is through this API. ”。还保留着Java的解释了,平台会采用Java的API,但是,这句话确实够昏的。Directory的注释原文:
A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing. Java's i/o APIs not used directly, but rather all i/o is through this API. This permits things such as:
implementation of RAM-based indices;
implementation indices stored in a database, via JDBC;
implementation of an index as a single file;
意思就是:一个Directory对象是一份文件的清单。文件可能只在被创建的时候写一次。一旦文件被创建,它将只被读取或者删除。在读取的时候进行写入操作是允许的。Java的I/O库没有被直接使用,所以的I/O操作都通过这个API。这些存储可以允许:
实现基于内存的索引;
实现索引存入数据库,通过JDBC;
实现一个索引是一个文件。
而Directory的11个方法分别是:
1、list 把一个Directory对象下的文件,按字符串数组的方式返回;
2、fileExists 给定一个文件名,如果存在,就返回true;
3、fileModified返回给定文件名被修改的时间;
4、touchFile 设置给定文件名文件的更新时间为现在;
5、deleteFile 删除当前directory对象下一个给定文件名的文件,该文件必须存在;
6、renameFile重命名当前directory一个文件的文件名,如果新的名字在directory里已经存在,将会更换。这个要更换原子;
7、fileLength 返回文件的长度;
8、createFile 创建一个空文件,并且返回该文件的写入流;
9、openFile 返回一个存在文件的读取流;
10、makeLock 锁定该directory对象;
11、close 关闭该对象。
而在Directory类中,使用的都是抽象方法,把这个类换成接口也可以。
然后再来看看RAMDirectory类。RAMDirectory是Directory的内存操作实现。RAMDirectory类有5个重载构造函数。
RAMDirectory() 构造函数无操作;
RAMDirectory(Directory dir)允许把硬盘上的索引载入内存,这个操作只适用于可以被载入内存的索引。(注:文件结构不对或者索引大小超出内存肯定就不行了。)这个构造函数只调用了RAMDirectory(Directory dir, boolean closeDir)构造函数,并未做其他动作。
再来看看RAMDirectory(Directory dir, boolean closeDir)构造函数。除了默认构造函数,其他3个构造函数都是调用的这个构造函数做处理的。
代码
1