GeoServer源码解析和扩展 (四)文件系统

上一章我介绍了GeoServer的一些重要的资源以及它们的访问接口,现在来看看它们的保存形式。GeoServer的数据没有保存到数据库,而是文件系统,这让我们的学习轻松不少。默认情况下,GeoServer的数据都会放到一个叫“data_dir”的文件夹下面,虽然你可以自己设置这个文件夹的路径,但是它的内部结果是固定的,如下图

image

这是2.0.2版本的data_dir,从子目录的名称基本上能够猜测它的作用。“coverages”保存的是影像数据。“data”保存了矢量数据,基本上是Shapefile。“styles”保存的是样式文件,即“*.sld”文件。“workspaces”保存的是工作空间,这是GeoServer的概念,工作空间代表一个独立的分组,它有自己的Namespace,它包含有Store,Layer和FeatureType,包含在Workspace下面的数据都需要用Namespace来引用,例如这段URL:http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&styles=population&Format=image/png&request=GetMap&layers=topp:states&width=550&height=250&srs=EPSG:4326
,它请求一个叫“topp:states”的图层的地图,这里的“topp”就是Namespace,我们可以看到“workspaces”下面确实有一个叫“topp”的文件夹

image

打开“topp”我们会看到如下内容

image

没有看到“states”图层,这是怎么回事呢?Workspace下面的文件夹对应的是Store这个概念,而Layer和FeatureType都属于Store。下图是“states_shapefile”文件夹的内容

image

打开“states”文件夹可以看到

image

到此,我们就把资源的文件夹关系简单浏览了一遍。其中,我认为,最重要的关系就是Workspace与包含数据的关系。

    一般来说,我们不太会直接访问这些文件夹,GeoServer的资源访问接口已经为我们提供了完整的访问机制。但是,如果我们需要对GeoServer进行扩展,尤其是需要扩展概念的时候,例如,需要增加一种资源类型叫Table,代表一个表数据,也许是一个Excel表格。这时候我们就需要将它放到合适的文件夹下面,最好是和GeoServer原生的文件夹系统一致,就可以使用很多已经存在的工具。

    好了,这一章就写到这里,这也是本系列的最后一篇,谢谢观赏。时值新春佳节来临之际在这里祝福所有人:身体健康,财源广进,兔年吉祥如意。

转载自:https://blog.csdn.net/yht_roy/article/details/8581078

You may also like...