diff --git a/jhinno-openapi-sdk-spring-boot-example/pom.xml b/jhinno-openapi-sdk-spring-boot-example/pom.xml
new file mode 100644
index 0000000..3658184
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/pom.xml
@@ -0,0 +1,75 @@
+
+
+ 4.0.0
+ cim.jhinno
+ jhinno-openapi-sdk-spring-boot-example
+ 2.0.3
+ jar
+ Jhinno OpenAPI SDK for Java SpringBoot Example
+ The Jhinno OpenAPI SDK for Java used for accessing Jhinno OpenApi Service
+ http://jhinno.com
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.7.18
+
+
+
+
+
+ com.jhinno
+ jhinno-openapi-sdk-spring-boot-starter
+ 2.0.3
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ true
+
+
+
+ org.projectlombok
+ lombok
+ provided
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
+
+
+
+ lqyan
+ lqyan
+ lqyan@jhinno.com
+
+
+
+
+
+ The Apache License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+
+
+
+
\ No newline at end of file
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/ExampleApplication.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/ExampleApplication.java
new file mode 100644
index 0000000..1c378b0
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/ExampleApplication.java
@@ -0,0 +1,13 @@
+package com.jhinno.sdk.openapi.example;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ExampleApplication {
+
+
+ public static void main(String[] args) {
+ SpringApplication.run(ExampleApplication.class, args);
+ }
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileEnvType.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileEnvType.java
new file mode 100644
index 0000000..764317c
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileEnvType.java
@@ -0,0 +1,19 @@
+package com.jhinno.sdk.openapi.example.api.extend;
+
+public enum FileEnvType {
+
+ HOME_ENV{
+ @Override
+ public String getEnv() {
+ return "home";
+ }
+ },
+ SPOOLER_ENV{
+ @Override
+ public String getEnv() {
+ return "spooler";
+ }
+ };
+
+ public abstract String getEnv();
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FilePath.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FilePath.java
new file mode 100644
index 0000000..a5ca4e0
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FilePath.java
@@ -0,0 +1,13 @@
+package com.jhinno.sdk.openapi.example.api.extend;
+
+import lombok.Data;
+
+@Data
+public class FilePath {
+
+ /**
+ * 文件路径
+ */
+ private String path;
+
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileSystemType.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileSystemType.java
new file mode 100644
index 0000000..6b0c9fd
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/FileSystemType.java
@@ -0,0 +1,24 @@
+package com.jhinno.sdk.openapi.example.api.extend;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum FileSystemType {
+
+ SYSTEM_TYPE_LINUX {
+ @Override
+ public String getType() {
+ return "linux";
+ }
+ },
+ SYSTEM_TYPE_WINDOWS {
+ @Override
+ public String getType() {
+ return "windows";
+ }
+ };
+
+ public abstract String getType();
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/JHFileApiExtendExecution.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/JHFileApiExtendExecution.java
new file mode 100644
index 0000000..2437877
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/api/extend/JHFileApiExtendExecution.java
@@ -0,0 +1,29 @@
+package com.jhinno.sdk.openapi.example.api.extend;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.jhinno.sdk.openapi.api.JHApiExecution;
+import com.jhinno.sdk.openapi.api.ResponseResult;
+import com.jhinno.sdk.openapi.client.JHApiClient;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class JHFileApiExtendExecution extends JHApiExecution {
+
+ public static String GET_FILE_ENV_PATH = "/ws/api/files/path/{env}";
+
+ public FilePath getFileEnvPath(String username, FileEnvType env, FileSystemType type) {
+ Map params = new HashMap<>(1);
+ if (StringUtils.isNotBlank(type.getType())) {
+ params.put("type", type.getType());
+ }
+ String url = JHApiClient.getUrl(GET_FILE_ENV_PATH.replace("{env}", env.getEnv()), params);
+ return get(url, username, new TypeReference>() {
+ });
+ }
+
+ public FilePath getFileHomeEnvPath(String username, FileSystemType type) {
+ return getFileEnvPath(username, FileEnvType.HOME_ENV, type);
+ }
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/config/JHOpenapiExecutionConfig.java b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/config/JHOpenapiExecutionConfig.java
new file mode 100644
index 0000000..688a896
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/java/com/jhinno/sdk/openapi/example/config/JHOpenapiExecutionConfig.java
@@ -0,0 +1,19 @@
+package com.jhinno.sdk.openapi.example.config;
+
+import com.jhinno.sdk.openapi.example.api.extend.JHFileApiExtendExecution;
+import com.jhinno.sdk.openapi.utils.JHOpenApiConfig;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+@Configuration
+@RequiredArgsConstructor
+public class JHOpenapiExecutionConfig {
+
+
+ @Bean
+ public JHFileApiExtendExecution fileApiExtendExecution(JHOpenApiConfig jhOpenApiConfig) {
+ return jhOpenApiConfig.configJHApiExecution(new JHFileApiExtendExecution());
+ }
+}
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/main/resources/application.yml b/jhinno-openapi-sdk-spring-boot-example/src/main/resources/application.yml
new file mode 100644
index 0000000..37d8052
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/main/resources/application.yml
@@ -0,0 +1,6 @@
+jhinno:
+ openapi:
+ server-url: https://172.17.0.5/appform
+ auth-type: access_secret_mode
+ access-key: 3f03747f147942bd8debd81b6c9c6a80
+ access-key-secret: e0681859b91c499eb1d2c8e09cea3242
\ No newline at end of file
diff --git a/jhinno-openapi-sdk-spring-boot-example/src/test/java/com/jhinno/sdk/openapi/example/test/extend/JHFileApiExtendTest.java b/jhinno-openapi-sdk-spring-boot-example/src/test/java/com/jhinno/sdk/openapi/example/test/extend/JHFileApiExtendTest.java
new file mode 100644
index 0000000..1011b79
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-example/src/test/java/com/jhinno/sdk/openapi/example/test/extend/JHFileApiExtendTest.java
@@ -0,0 +1,19 @@
+package com.jhinno.sdk.openapi.example.test.extend;
+
+import com.jhinno.sdk.openapi.example.api.extend.FileSystemType;
+import com.jhinno.sdk.openapi.example.api.extend.JHFileApiExtendExecution;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class JHFileApiExtendTest {
+
+ @Autowired
+ private JHFileApiExtendExecution jhFileApiExtendExecution;
+
+ @Test
+ void testGetFileHomeEnvPath() {
+ System.out.println(jhFileApiExtendExecution.getFileHomeEnvPath("jhadmin", FileSystemType.SYSTEM_TYPE_LINUX));
+ }
+}
diff --git a/jhinno-openapi-sdk-spring-boot-starter/src/main/java/com/jhinno/sdk/openapi/utils/JHOpenApiConfig.java b/jhinno-openapi-sdk-spring-boot-starter/src/main/java/com/jhinno/sdk/openapi/utils/JHOpenApiConfig.java
new file mode 100644
index 0000000..e809905
--- /dev/null
+++ b/jhinno-openapi-sdk-spring-boot-starter/src/main/java/com/jhinno/sdk/openapi/utils/JHOpenApiConfig.java
@@ -0,0 +1,28 @@
+package com.jhinno.sdk.openapi.utils;
+
+import com.jhinno.sdk.openapi.api.JHApiExecution;
+import com.jhinno.sdk.openapi.autoconfigure.JHOpenapiProperties;
+import com.jhinno.sdk.openapi.client.JHApiClient;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@RequiredArgsConstructor
+public class JHOpenApiConfig {
+
+ private final JHApiClient client;
+ private final JHOpenapiProperties properties;
+
+ public T initJHApiExecution(T execution) {
+ execution.setJhApiClient(client);
+ execution.setForceGetToken(properties.isForceGetToken());
+ execution.setAuthType(properties.getAuthType());
+ execution.setAccessKey(properties.getAccessKey());
+ execution.setAccessKeySecret(properties.getAccessKeySecret());
+ execution.setTokenTimeout(properties.getTokenTimeout());
+ execution.setTokenResidueTime(properties.getTokenResidueTime());
+ execution.setUsedServerTime(properties.isUsedServerTime());
+ return execution;
+ }
+
+}