Android程序員搭建一個屬於本身的服務器,再也不求各類公共API

前言

最近在跟小夥伴合做開發一款app,苦於沒有合適的公共api接口,因此決定本身搭建一個服務器,目前已實現註冊、登陸,爬蟲定時拉取閒魚首頁更新數據庫。java

app傳送門 一個極致的集大成Appmysql

搭建服務器須要些什麼工做

本文所介紹的服務器都是入門級別的,適合移動端同窗本身搭建玩玩,尚未達到商業開發水平,大牛請莫見怪。git

咱們搭建服務器主要有如下幾個步驟:程序員

  • 1.搭建開發環境,IntelliJ + spring-boot + mybatis
  • 2.搭建數據庫,mysql + navicat
  • 3.搭建運行環境,tomcat + 阿里雲

1、搭建開發環境

本文安裝環境是基於Windows的,Linux和Mac環境也都大同小異,我就不一一介紹了,若是有問題,能夠在github上留言 https://github.com/foxleezh/github

1.1 IntelliJ安裝

做爲Android開發,基本都習慣使用Android Studio,而IntelliJ跟它幾乎是如出一轍,由於Android Studio正是基於它開發的,因此它是Android程序員開發服務器最好的選擇。web

首先咱們須要去下載一個IntelliJ安裝包,https://www.jetbrains.com/idea/download/ 這個軟件是須要註冊的,不過也能夠試用。spring

1.2 配置IntelliJ

第一次運行會進入下面界面,咱們選擇Darcula風格,而後一直Next就能夠 sql

以後會讓咱們新建項目,這裏咱們先不着急,先git clone https://github.com/G-Joker/WeaponApp ,把項目拉下來放在任意一個目錄下,而後再選擇Import Project
選擇咱們剛纔clone下來的目錄,注意這裏要選Server,Client是客戶端項目

點擊Ok,須要選擇構建方式,咱們選擇import,而後選擇gradle

點擊下一步,配置下gradle和java的環境

點擊Finish即進入IntelliJ主界面,這個你們都比較熟悉了,跟Android Studio幾乎同樣,咱們先進行一些界面配置,調整下字體大小,自動導包等,Ctrl+Alt+S
配置一下JDK目錄
這些步驟完成後,開發環境即配置好了,可是項目還不能運行,由於尚未配置數據庫

2、搭建數據庫

2.1 安裝MySQL

到官網下載比較慢,因此我就直接在百度上下載了,直接百度搜索 「mysql 下載」,就能夠了,我下載的文件爲mysql-5.7.17.msi,點擊直接安裝,在第二步Choosing a Setup Type的時候,選擇Server only 數據庫

而後一直Next,在輸入數據庫密碼的時候輸入App123,A大寫,爲何輸入這個,由於WeaponApp項目裏面配置的密碼是這個
以後就一直Next,MySQL安裝成功,下面咱們講數據庫操做

2.1 用navicat操做數據庫

navicat是個工具,能夠直接到百度下載,而後鏈接數據庫,密碼是App123 apache

新建一個數據庫test,爲何叫test,由於WeaponApp裏配置的數據庫叫test
接下來導入數據,原本這裏表是須要一個個建的,爲了省事,我已經把項目的表結構都導出來了,在Server項目下有個tools目錄,裏面有個data.sql的文件,咱們能夠用navcat直接導入全部的表
這樣,咱們數據庫就搭建好了,接下來就能夠運行項目了

3、搭建運行環境

3.1 直接運行項目

跟Android同樣,Server也有debug模式和release模式,咱們先講debug模式,這個其實比較簡單,首先肯定根目錄下的gradle.properties裏DEVELOP_MODE=true,而後點擊運行便可

而後咱們就能夠在瀏覽器裏輸入http://localhost:8080/home/taobaolist ,固然還有其餘接口,能夠參照doc目錄下的接口文檔

3.2 運行在tomcat

咱們的項目須要掛到tomcat上,這樣服務就能夠一直開着了,畢竟開發工具你不可能一直開着。首先咱們須要去下載一個tomcat,下載地址http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M27/bin/apache-tomcat-9.0.0.M27.exe 。下載好後直接運行,中間有一步選擇JDK路徑

接下來去把項目release包打出來,咱們打開IntelliJ,首先肯定根目錄下的gradle.properties裏DEVELOP_MODE=false,而後在Terminal中輸入gradlew assemble就能夠了,而後在build/libs下有個Server-0.0.1-SNAPSHOT.war,這就是咱們打出的release包

咱們先把這個war包改個名字,叫api.war,而後找到tomcat的安裝目錄,裏面有個目錄叫webapps,把裏面的文件所有刪除,而後把api.war拷貝進去,這時候api.war包會自動解壓成文件夾,說明服務器啓動了,若是沒有自動解壓,那咱們能夠到tomcat的bin目錄下運行Tomcat9w.exe,而後點擊下面的start

這樣咱們就能夠在瀏覽器輸入http://localhost:8080/api/home/taobaolist 直接訪問了,這裏注意一點,和直接debug運行不一樣,地址8080後要加一個api的路徑,這個名字跟war包的名字相同

至此,一個本地版的服務器就搭建起來了,若是其餘電腦和你的電腦在同一個局域網內,就能夠經過ip地址訪問服務器了,好比你的ip是192.168.1.101,那麼其餘電腦就能夠用http://192.168.1.101:8080/api/home/taobaolist 訪問,若是要外網也能夠訪問,那就要搭建雲服務器了,接下來我將講如何搭建阿里雲。

3.3 搭建阿里雲

搭建阿里雲以前,你須要去買一個阿里雲的服務器,我是買的免費6個月的,一共9.9,地址https://free.aliyun.com/ ,買了以後再進入這個頁面,它會叫你去開通各項免費服務,這裏主要是 「雲服務器 ECS」,其餘的東西暫時用不着,開通的時候會讓你選擇什麼操做系統,我選的是Windows Server 2012中文版,主要是平時開發用的Windows,大家能夠根據本身的狀況來,開通好後就能夠前往控制檯了

阿里雲控制檯提供了遠程控制功能,可是不太方便,由於一是瀏覽器比較卡,二是傳輸文件不太方便,因此我通常是直接用電腦遠程鏈接,首先win+R,輸入mstsc

這時候咱們須要輸入遠程ip地址,這個在阿里雲的控制檯上有,點擊概覽,而後選擇服務器

好比個人ip是47.95.198.174,而後輸入到剛纔Win+R打開的界面,進行以下操做便可

這樣咱們阿里雲的服務器就能夠訪問本地C盤和D盤上的內容了,並且速度也比瀏覽器快不少,接下來咱們講如何在阿里雲上搭建服務器運行環境。

3.4 阿里雲運行環境

阿里雲服務器就至關於一臺電腦,因此運行環境的搭建跟咱們在本地實際上是同樣的。咱們先要安裝MySQL,這個跟本地同樣,咱們能夠去服務器的瀏覽器下載,也能夠從本地拷貝過去

本地拷貝

本地拷貝的速度是比較慢的,由於遠程鏈接也是經過網絡,因此我建議能從瀏覽器下載的都從瀏覽器下載,除非咱們要發佈war包之類的才用本地拷貝。安裝完MySQL後安裝navicat,新建數據庫,導入數據,安裝tomcat,拷貝war包到webapps下,這些都跟在本地同樣。這些工做作完後,咱們在服務器的瀏覽器上輸入http://localhost:8080/api/home/taobaolist ,若是能訪問說明服務器環境搭建成功

3.5 在外網訪問接口

阿里雲服務器運行環境搭建好後,咱們在外網用http://47.95.198.174:8080/api/home/taobaolist 是無法訪問的,由於阿里雲控制檯有安全控制,不是全部端口均可以在外網訪問的,這時咱們須要去阿里雲控制檯設置端口

這樣咱們就能夠在外網用http://47.95.198.174:8080/api/home/taobaolist 訪問了,固然咱們能夠把端口8080改爲80,這樣咱們就能夠用http://47.95.198.174/api/home/taobaolist 訪問了,這個須要咱們配置服務器的tomcat,打開tomcat下面的conf目錄,裏面有個server.xml

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
複製代碼

將port改爲80便可,而後一樣須要在阿里雲控制檯配置80端口

若是你想把ip地址變成域名訪問,好比http://app.foxleezh.me/api/home/taobaolist (目前要備案沒法訪問),那還要去買域名,作一下域名映射就好了,這個比較簡單,本文就不介紹了

小結

本文主要介紹如何搭建一個簡單的服務器供Android客戶端訪問,主要有如下幾個方面:

1.搭建開發環境,主要是用IntelliJ開發,框架是Spring-Boot和Mybatis 2.搭建數據庫,數據庫用MySQL,操做工具是navicat 3.搭建運行環境,掛載容器用Tomcat,而後用阿里雲做爲雲服務器

相關文章
相關標籤/搜索