最近在跟小伙伴合作开发一款app,苦于没有合适的公共api接口,所以决定自己搭建一个服务器,目前已实现注册、登录,爬虫定时拉取闲鱼首页更新数据库。

app传送门 一个极致的集大成App

搭建服务器需要些什么工作

本文所介绍的服务器都是入门级别的,适合移动端同学自己搭建玩玩,还没有达到商业开发水平,大牛请莫见怪。

我们搭建服务器主要有以下几个步骤:

  • 1.搭建开发环境,IntelliJ + spring-boot + mybatis
  • 2.搭建数据库,mysql + navicat
  • 3.搭建运行环境,tomcat + 阿里云

一、搭建开发环境

本文安装环境是基于Windows的,Linux和Mac环境也都大同小异,我就不一一介绍了,如果有问题,可以在github上留言 https://github.com/foxleezh/

1.1 IntelliJ安装

作为Android开发,基本都习惯使用Android Studio,而IntelliJ跟它几乎是一模一样,因为Android Studio正是基于它开发的,所以它是Android程序员开发服务器最好的选择。

首先我们需要去下载一个IntelliJ安装包,https://www.jetbrains.com/idea/download/ 这个软件是需要注册的,不过也可以试用。

1.2 配置IntelliJ

第一次运行会进入下面界面,我们选择Darcula风格,然后一直Next就可以  之后会让我们新建项目,这里我们先不着急,先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.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 新建一个数据库test,为什么叫test,因为WeaponApp里配置的数据库叫test 接下来导入数据,本来这里表是需要一个个建的,为了省事,我已经把项目的表结构都导出来了,在Server项目下有个tools目录,里面有个data.sql的文件,我们可以用navcat直接导入所有的表 这样,我们数据库就搭建好了,接下来就可以运行项目了

三、搭建运行环境

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

Android程序员搭建一个属于自己的服务器相关推荐

  1. 为什么我的子线程更新了 UI 没报错?借此,纠正一些Android 程序员的一个知识误区...

    开门见山: 这个误区是:子线程不能更新 UI ,其应该分类讨论,而不是绝对的. 半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我 ...

  2. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~...

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  3. 2020倒计时,大厂核心送给每一个脚踏实地努力着的Android程序员,逆风前行

    Android前景的压力: 面试的压力: 寒冬的压力: <Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义>开源 年龄的压力: 等等- 其实每个人都有自己的 ...

  4. android开发培训!作为一个Android程序员你还不会JetPack?安卓系列学习进阶视频

    开头 让我们一起来看看,字节跳动的第三面,面试官都问了什么?(第一二面的题目及答案已整理,需要的可以在文末领取) 从七月中旬开始,我前前后后差不多一共投递了八十份简历,到目前为止,我参加面试的面试有十 ...

  5. Android程序员该如何进阶学习以预防35岁中年职场危机?

    一.大家都在担心的问题 不只是Android,很多程序员都在担心业界的"35岁危机",担心自己到35岁后就被市场淘汰. 比如最近就经常被大家问到这样的问题,比如这样的: 大佬好,目 ...

  6. 35岁Android程序员面临失业,是不是该考虑转行了?

    那么做一个牛逼的程序员,是不是没必要呢? 恰恰相反,35岁失业的原因之一,是因为个人能力与年龄不匹配.刚毕业的头几年,你会发现似乎很好找工作,市场也很好,那是因为市场对你的要求不高. 当你35岁了,市 ...

  7. Android程序员如何有效提升学习效率?帮你突破瓶颈

    背景 惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口. 那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很 ...

  8. 给Android程序员的六个建议

    给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...

  9. Android程序员的进阶之路

    本文主要论述的是Android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正. 大家都知道程序员之中有有菜鸟 ...

最新文章

  1. HPE谢少毅:更敏捷的企业服务,做有生命力的落地实践
  2. 要做服务和酒店行业的“领英” ,Industry 获得230万美元种子轮融资
  3. 冷热分治,DT时代的数据存储必由之路
  4. POJ1236 强连通 (缩点后度数的应用)
  5. mysql判断是否建立索引_判断mysql中列是否要添加索引的标准
  6. Android下发布正式包注意事项
  7. 腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目
  8. 浙企加入中国大数据产业生态联盟 共商数据价值
  9. 第二节:框架前期准备篇之AutoFac常见用法总结
  10. 组件用.vue还是.js_如何使用Vue.js 2.0构建灵活的图像上传器组件
  11. layDate1.0正式公布,您一直在寻找的的js日期控件
  12. 天天动听 android,天天动听手机版
  13. 2、ES5的严格模式use strict
  14. 蓝桥杯笔记:带分数(dfs排列问题)
  15. linux 把数字传给bc,linux – 在Bash中使用bc舍入数字
  16. 单片机学习入门一 学习概述
  17. 2021年煤气考试题库及煤气试题及解析
  18. IE浏览器中 img ... /标签不显示图片
  19. 当mybatis逆向工程遇上了数据库字段增加
  20. 游戏引擎开发涉及的知识和技术

热门文章

  1. calibre中的hcell_在Cadence环境下的Calibre使用流程
  2. 大家学习雷锋好榜样啊~~ 帮个忙啊
  3. 免疫磁珠分选原理(链霉亲和素磁珠/链霉亲和素-生物素(SA-Biotin)/免疫沉淀磁珠Protein A/G)
  4. JavaSE学生管理系统(ArrayList集合来做)
  5. 互联网运营:一场怡红院中的战争 转
  6. 中国区块链开发者真实现状:半数只懂皮毛; 数据分析师吃香; Java/Python或成为主流开发语言...
  7. tcp网络编程客户端和服务端及listen和tcp允许最大连接数
  8. 前端开发实习生面试总结
  9. 努比亚Z17MINI ROOT (Fastboot模式)
  10. ubuntu解压rar文件、zip文件乱码