狠狠色噜噜狠狠狠狠2021,久久精品国产亚洲av麻豆白洁,777米奇影视盒,国内精品老年人视频网站

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

背景

相信大家都使用過Maven,我們平時要使用公共的API,只需要導(dǎo)入Maven依賴即可。然后就可以直接調(diào)用里面的方法了,非常的方便。

最近的項目有個需求,需要將業(yè)務(wù)系統(tǒng)與公司內(nèi)部的OA系統(tǒng)做交互,比如業(yè)務(wù)系統(tǒng)的任務(wù)待辦要發(fā)到OA系統(tǒng)的待辦中,還要發(fā)送OA郵件等,還需要通過OA登錄業(yè)務(wù)系統(tǒng)等。

其實上面的操作比較簡單,我們只需要通過http遠程調(diào)用OA的接口即可。將接口封裝完畢后,調(diào)用,測試。一切順利。

但是我們的系統(tǒng)實際上是由很多子系統(tǒng)構(gòu)成的,今天我在這個系統(tǒng)里封裝了OA接口,明天在另外一個系統(tǒng)可能還要需要使用,那么可能又要封裝一次。

那么自己何不做成一個公共的SDK呢,這樣只要有需要的系統(tǒng)引入依賴,即可實現(xiàn)輕松調(diào)用。

說干就干。

配置文件

首先需要建立一個工程,這里我建立一個SpringBoot的工程。

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

然后我們在pom.xml配置文件中配置編譯、打包插件

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.4</version> <configuration> <attach>true</attach> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources></build>

打包好的jar需要上傳到maven倉庫,這里還需要配置倉庫地址。

<distributionManagement> <repository> <id>nexus-releases</id> <url>http://10.xx.xx.xxx/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <url>http://10.xx.xx.xxx/repository/maven-snapshots/</url> </snapshotRepository></distributionManagement>

pom.xml文件中配置好倉庫地址,一個是releases的,一個試snapshots的。maven倉庫圖如下:

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

除了工程里面的配置,還需要到Maven的配置文件中添加配置

settings.xml

<servers> <server> <id>nexus-releases</id> <username>admin</username> <password>adminxxx</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>adminxxx</password> </server></servers>

我們將打包的jar上傳到的是私服,如果配置文件中配置了代理,需要將代理注釋掉。

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

就上上圖中<proxies> … </proxies>的內(nèi)容。

開發(fā)功能

一切準備就緒后就可以開發(fā)功能了。

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

我們以上圖中的BacklogTaskClient為例,在這個類中,我們封裝一個保存待辦的功能:

/** * 保存待辦 * * @param param * @return*/public String addBacklogTask(AddBacklogTaskParam param) { String url = baseUrl "/backlogTask/add"; GenericApiRequest request = new GenericApiRequest.Builder() .requestUrl(url) .requestMethod(HttpMethod.POST) .requestData(param) .responseTypeReference(new TypeReference<IdParam<String>>() { }) .build(); IdParam<String> idParam = request.waitResponse(); return idParam.getId();}

實際上就是遠程調(diào)用遠程待辦功能,然后封裝起來。

我們在類中添加了

@ConditionalOnProperty(name = "basic-service.backlogtask.provider", havingValue = "default")

@ConditionalOnProperty用于控制是否將該類注入到Spring的容器中,如果我們在業(yè)務(wù)工程的properties文件中配置

basic-service.backlogtask.provider=default

那么業(yè)務(wù)類啟動的時候會將該類注入到容器中。這樣實現(xiàn)按需注入,提高SDK的性能。

推送到倉庫

運行idea的maven插件里面的deploy,即可將工程打包并發(fā)送到maven倉庫中。

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

進入maven倉庫,發(fā)現(xiàn)推送成功。

如何開發(fā)一個輕量且高效的SDK(怎么開發(fā)sdk)

接下來我們就需要在業(yè)務(wù)系統(tǒng)中調(diào)用了。

業(yè)務(wù)系統(tǒng)調(diào)用

首先引入我們的maven依賴:

<dependency> <groupId>com.xx.xx.common</groupId> <artifactId>xx-xx-common-sdk</artifactId> <version>1.0.5-SNAPSHOT</version></dependency>

接著在啟動類添加掃描路徑

@ComponentScan(value = {"com.xx.xx"})

然后配置文件中作需要的配置

#properties配置文件配置相關(guān)信息basic-service.backlogtask.provider=defaultbasic-service.backlogtask.urlPrefix=http://10.xx.xx.xx:3x000

配置之后,業(yè)務(wù)系統(tǒng)啟動時就能注入相關(guān)的類了。

最后使用Autowired取出需要的bean。

@Autowiredprivate BacklogTaskClient backlogTaskClient;

調(diào)用即可

String id = "1486154056300101632";BacklogTask backlogTaskById = backlogTaskClient.getBacklogTaskById(id);Console.log("test is over:{}", backlogTaskClient);

這樣這個公共功能在各個系統(tǒng)中都可以引入使用了。

到此,我們的SDK就開發(fā)完成了。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年5月18日 上午9:07
下一篇 2023年5月18日 上午9:24

相關(guān)推薦