1. 添加依赖
<dependency>
<groupId>it.geosolutions</groupId>
<artifactId>geoserver-manager</artifactId>
<version>1.7.0</version>
</dependency>
2. 抽取常量
public class GeoConstant {
public static String GEOSERVER_URL = "https://localhost:8080/geoserver";
public static String GEOSERVER_USERNAME = "admin";
public static String GEOSERVER_PASSWORD = "geoserver";
public static String GEOSERVER_WORKSPACE = "test";
public static String GEOSERVER_DATASTORE = "test";
}
3.代码实现
public class GeoserverService {
private final GeoServerRESTManager geoServerRESTManager;
GeoserverService(){
this.geoServerRESTManager = new GeoServerRESTManager(new URL(GeoConstant.GEOSERVER_URL), GeoConstant.GEOSERVER_USERNAME, GeoConstant.GEOSERVER_PASSWORD);
if(!geoServerRESTManager.getReader().existsWorkspace(GeoConstant.GEOSERVER_WORKSPACE)) {
geoServerRESTManager.getPublisher().createWorkspace(GeoConstant.GEOSERVER_WORKSPACE);
}
if(!geoServerRESTManager.getReader().existsDatastore(GeoConstant.GEOSERVER_WORKSPACE,GeoConstant.GEOSERVER_DATASTORE)) {
GSPostGISDatastoreEncoder gsPostGISDatastoreEncoder = new GSPostGISDatastoreEncoder(GeoConstant.GEOSERVER_DATASTORE);
gsPostGISDatastoreEncoder.setHost("localhost");
gsPostGISDatastoreEncoder.setPort(5432);
gsPostGISDatastoreEncoder.setDatabase("test");
gsPostGISDatastoreEncoder.setSchema("public");
gsPostGISDatastoreEncoder.setUser("postgres");
gsPostGISDatastoreEncoder.setPassword("123456");
geoServerRESTManager.getStoreManager().create(GeoConstant.GEOSERVER_WORKSPACE, gsPostGISDatastoreEncoder);
}
}
}