前言
最近在跟小伙伴合作開發(fā)一款app,苦于沒有合適的公共api接口,所以決定自己搭建一個(gè)服務(wù)器,目前已實(shí)現(xiàn)注冊(cè)、登錄,爬蟲定時(shí)拉取閑魚首頁更新數(shù)據(jù)庫。
app傳送門 一個(gè)極致的集大成App
搭建服務(wù)器需要些什么工作
本文所介紹的服務(wù)器都是入門級(jí)別的,適合移動(dòng)端同學(xué)自己搭建玩玩,還沒有達(dá)到商業(yè)開發(fā)水平,大牛請(qǐng)莫見怪。
我們搭建服務(wù)器主要有以下幾個(gè)步驟:
- 1.搭建開發(fā)環(huán)境,IntelliJ + spring-boot + mybatis
- 2.搭建數(shù)據(jù)庫,mysql + navicat
- 3.搭建運(yùn)行環(huán)境,tomcat + 阿里云
一、搭建開發(fā)環(huán)境
本文安裝環(huán)境是基于Windows的,Linux和Mac環(huán)境也都大同小異,我就不一一介紹了,如果有問題,可以在github上留言 https://github.com/foxleezh/
1.1 IntelliJ安裝
作為Android開發(fā),基本都習(xí)慣使用Android Studio,而IntelliJ跟它幾乎是一模一樣,因?yàn)锳ndroid Studio正是基于它開發(fā)的,所以它是Android程序員開發(fā)服務(wù)器最好的選擇。
首先我們需要去下載一個(gè)IntelliJ安裝包,https://www.jetbrains.com/idea/download/
這個(gè)軟件是需要注冊(cè)的,不過也可以試用。
1.2 配置IntelliJ
第一次運(yùn)行會(huì)進(jìn)入下面界面,我們選擇Darcula風(fēng)格,然后一直Next就可以
之后會(huì)讓我們新建項(xiàng)目,這里我們先不著急,先git clone https://github.com/G-Joker/WeaponApp ,把項(xiàng)目拉下來放在任意一個(gè)目錄下,然后再選擇Import Project
選擇我們剛才clone下來的目錄,注意這里要選Server,Client是客戶端項(xiàng)目
點(diǎn)擊Ok,需要選擇構(gòu)建方式,我們選擇import,然后選擇gradle
點(diǎn)擊下一步,配置下gradle和java的環(huán)境
點(diǎn)擊Finish即進(jìn)入IntelliJ主界面,這個(gè)大家都比較熟悉了,跟Android Studio幾乎一樣,我們先進(jìn)行一些界面配置,調(diào)整下字體大小,自動(dòng)導(dǎo)包等,Ctrl+Alt+S
配置一下JDK目錄
這些步驟完成后,開發(fā)環(huán)境即配置好了,但是項(xiàng)目還不能運(yùn)行,因?yàn)檫€沒有配置數(shù)據(jù)庫
二、搭建數(shù)據(jù)庫
2.1 安裝MySQL
到官網(wǎng)下載比較慢,所以我就直接在百度上下載了,直接百度搜索 “mysql 下載”,就可以了,我下載的文件為mysql-5.7.17.msi,點(diǎn)擊直接安裝,在第二步Choosing a Setup Type的時(shí)候,選擇Server only
然后一直Next,在輸入數(shù)據(jù)庫密碼的時(shí)候輸入App123,A大寫,為什么輸入這個(gè),因?yàn)閃eaponApp項(xiàng)目里面配置的密碼是這個(gè)
之后就一直Next,MySQL安裝成功,下面我們講數(shù)據(jù)庫操作
2.1 用navicat操作數(shù)據(jù)庫
navicat是個(gè)工具,可以直接到百度下載,然后連接數(shù)據(jù)庫,密碼是App123
新建一個(gè)數(shù)據(jù)庫test,為什么叫test,因?yàn)閃eaponApp里配置的數(shù)據(jù)庫叫test
接下來導(dǎo)入數(shù)據(jù),本來這里表是需要一個(gè)個(gè)建的,為了省事,我已經(jīng)把項(xiàng)目的表結(jié)構(gòu)都導(dǎo)出來了,在Server項(xiàng)目下有個(gè)tools目錄,里面有個(gè)data.sql的文件,我們可以用navcat直接導(dǎo)入所有的表
這樣,我們數(shù)據(jù)庫就搭建好了,接下來就可以運(yùn)行項(xiàng)目了
三、搭建運(yùn)行環(huán)境
3.1 直接運(yùn)行項(xiàng)目
跟Android一樣,Server也有debug模式和release模式,我們先講debug模式,這個(gè)其實(shí)比較簡(jiǎn)單,首先確定根目錄下的gradle.properties里DEVELOP_MODE=true,然后點(diǎn)擊運(yùn)行即可
然后我們就可以在瀏覽器里輸入http://localhost:8080/home/taobaolist ,當(dāng)然還有其他接口,可以參照doc目錄下的接口文檔
3.2 運(yùn)行在tomcat
我們的項(xiàng)目需要掛到tomcat上,這樣服務(wù)就可以一直開著了,畢竟開發(fā)工具你不可能一直開著。首先我們需要去下載一個(gè)tomcat,下載地址http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M27/bin/apache-tomcat-9.0.0.M27.exe 。下載好后直接運(yùn)行,中間有一步選擇JDK路徑
接下來去把項(xiàng)目release包打出來,我們打開IntelliJ,首先確定根目錄下的gradle.properties里DEVELOP_MODE=false,然后在Terminal中輸入gradlew assemble就可以了,然后在build/libs下有個(gè)Server-0.0.1-SNAPSHOT.war,這就是我們打出的release包
我們先把這個(gè)war包改個(gè)名字,叫api.war,然后找到tomcat的安裝目錄,里面有個(gè)目錄叫webapps,把里面的文件全部刪除,然后把a(bǔ)pi.war拷貝進(jìn)去,這時(shí)候api.war包會(huì)自動(dòng)解壓成文件夾,說明服務(wù)器啟動(dòng)了,如果沒有自動(dòng)解壓,那我們可以到tomcat的bin目錄下運(yùn)行Tomcat9w.exe,然后點(diǎn)擊下面的start
這樣我們就可以在瀏覽器輸入http://localhost:8080/api/home/taobaolist 直接訪問了,這里注意一點(diǎn),和直接debug運(yùn)行不同,地址8080后要加一個(gè)api的路徑,這個(gè)名字跟war包的名字相同
至此,一個(gè)本地版的服務(wù)器就搭建起來了,如果其他電腦和你的電腦在同一個(gè)局域網(wǎng)內(nèi),就可以通過ip地址訪問服務(wù)器了,比如你的ip是192.168.1.101,那么其他電腦就可以用http://192.168.1.101:8080/api/home/taobaolist 訪問,如果要外網(wǎng)也可以訪問,那就要搭建云服務(wù)器了,接下來我將講如何搭建阿里云。
3.3 搭建阿里云
搭建阿里云之前,你需要去買一個(gè)阿里云的服務(wù)器,我是買的免費(fèi)6個(gè)月的,一共9.9,地址https://free.aliyun.com/ ,買了之后再進(jìn)入這個(gè)頁面,它會(huì)叫你去開通各項(xiàng)免費(fèi)服務(wù),這里主要是 “云服務(wù)器 ECS”,其他的東西暫時(shí)用不著,開通的時(shí)候會(huì)讓你選擇什么操作系統(tǒng),我選的是Windows Server 2012中文版,主要是平時(shí)開發(fā)用的Windows,你們可以根據(jù)自己的情況來,開通好后就可以前往控制臺(tái)了
阿里云控制臺(tái)提供了遠(yuǎn)程控制功能,但是不太方便,因?yàn)橐皇菫g覽器比較卡,二是傳輸文件不太方便,所以我一般是直接用電腦遠(yuǎn)程連接,首先win+R,輸入mstsc
這時(shí)候我們需要輸入遠(yuǎn)程ip地址,這個(gè)在阿里云的控制臺(tái)上有,點(diǎn)擊概覽,然后選擇服務(wù)器
比如我的ip是47.95.198.174,然后輸入到剛才Win+R打開的界面,進(jìn)行如下操作即可
這樣我們阿里云的服務(wù)器就可以訪問本地C盤和D盤上的內(nèi)容了,而且速度也比瀏覽器快很多,接下來我們講如何在阿里云上搭建服務(wù)器運(yùn)行環(huán)境。
3.4 阿里云運(yùn)行環(huán)境
阿里云服務(wù)器就相當(dāng)于一臺(tái)電腦,所以運(yùn)行環(huán)境的搭建跟我們?cè)诒镜仄鋵?shí)是一樣的。我們先要安裝MySQL,這個(gè)跟本地一樣,我們可以去服務(wù)器的瀏覽器下載,也可以從本地拷貝過去
本地拷貝
本地拷貝的速度是比較慢的,因?yàn)檫h(yuǎn)程連接也是通過網(wǎng)絡(luò),所以我建議能從瀏覽器下載的都從瀏覽器下載,除非我們要發(fā)布war包之類的才用本地拷貝。安裝完MySQL后安裝navicat,新建數(shù)據(jù)庫,導(dǎo)入數(shù)據(jù),安裝tomcat,拷貝war包到webapps下,這些都跟在本地一樣。這些工作做完后,我們?cè)诜?wù)器的瀏覽器上輸入http://localhost:8080/api/home/taobaolist ,如果能訪問說明服務(wù)器環(huán)境搭建成功
3.5 在外網(wǎng)訪問接口
阿里云服務(wù)器運(yùn)行環(huán)境搭建好后,我們?cè)谕饩W(wǎng)用http://47.95.198.174:8080/api/home/taobaolist 是沒法訪問的,因?yàn)榘⒗镌瓶刂婆_(tái)有安全控制,不是所有端口都可以在外網(wǎng)訪問的,這時(shí)我們需要去阿里云控制臺(tái)設(shè)置端口
這樣我們就可以在外網(wǎng)用http://47.95.198.174:8080/api/home/taobaolist 訪問了,當(dāng)然我們可以把端口8080改成80,這樣我們就可以用http://47.95.198.174/api/home/taobaolist 訪問了,這個(gè)需要我們配置服務(wù)器的tomcat,打開tomcat下面的conf目錄,里面有個(gè)server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
將port改成80即可,然后同樣需要在阿里云控制臺(tái)配置80端口
如果你想把ip地址變成域名訪問,比如http://app.foxleezh.me/api/home/taobaolist (目前要備案無法訪問),那還要去買域名,做一下域名映射就行了,這個(gè)比較簡(jiǎn)單,本文就不介紹了
小結(jié)
本文主要介紹如何搭建一個(gè)簡(jiǎn)單的服務(wù)器供Android客戶端訪問,主要有以下幾個(gè)方面:
1.搭建開發(fā)環(huán)境,主要是用IntelliJ開發(fā),框架是Spring-Boot和Mybatis
2.搭建數(shù)據(jù)庫,數(shù)據(jù)庫用MySQL,操作工具是navicat
3.搭建運(yùn)行環(huán)境,掛載容器用Tomcat,然后用阿里云作為云服務(wù)器