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,而后用阿里云做为云服务器

相关文章
相关标签/搜索