背景介绍:工作有一段时间了,是时候了解一下后端了
工具准备
- java代码编辑器IDEA链接,选择社区版(Community),因为免费,土豪随意
- java框架Spring Boot 下载地址下载请选择java 8
- 阿里云服务器一台这里我选择的是阿里云轻量应用服务器
- FTP软件,用来链接阿里云服务器,上传java代码包,这里我选的是WinSCP链接
编写java代码,写一个接口
- 通过网址start.spring.io/ 下载java框架包,请选择8,不要下错了
- 进行解压,导入idea编辑器
demo就是这个样子,现在打开pom.xml文件,在dependencies标签中加入如下代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml文件最终结果
接下来在com.example.demo下创建HelloWorld.java文件,和DemoApplication.java文件同一层级,在该文件中写入如下代码
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController()
public class HelloWorld {
@GetMapping("/test/hello")
public String login(){
return "hello world";
}
}
然后我们就可以把文件切换到DemoApplication了,因为main方法在该文件下,点击启动
这样就意味着接口已经启动,细心观察一下,你会发现和src同层级多了一个target文件夹,这就是spring boot框架启动自动生成的java包,类似于npm run dev生成存在内存上的前端包
现在打开浏览器http://localhost:8080/test/hello ,你会发现接口已启动
当然我们可以把启动端口改成80,只需要在src/main/resources文件夹下application.properties文件中增加代码server.port=80,然后重新启动即可
server.port=80
- 到这一步,接口已经完成,接下来打包
按照上面三步骤,最终我们会生成一个target文件夹,这个target文件夹的位置和刚才启动的target文件夹是同一位置,此刻打包的target已经把启动生成的target包覆盖掉,区别就是启动生成的target文件夹并没有相关的demo-xxx.jar文件
链接服务器上传代码包
- 打开阿里云服务器后台 这里以阿里云云服务器ECS为例
此处复制一下公网ip
- 打开WinSCP软件
输入主机名,即刚才复制的ip,用户名,这里是root(linux系统)密码自己设置的密码,如果不知道,可以查看上一张图片,点击重置实例密码;重置一下,然后选择登录
- 上传target包 链接成功选择上传target包
上传完成后我们继续打开阿里云后台选择远程连接,第一种方式,点击立即登录
- 找到我们刚才上传的包在root文件夹下
我们最终要启动的jar包就是target文件夹下的demo-0.0.1-SNAPSHOT.jar包从网上搜索启动命令即是
java -jar demo-0.0.1-SNAPSHOT.jar,尝试启动,失败了
原因是因为该服务器下并没有配置java命令,正如我们前端不在电脑上装node.js就没法使用npm命
在服务器上装java环境
有两种方式
- 下载压缩包
- 在线下载 我选择第一种方式
- 打开链接 www.oracle.com/java/techno…
- 选择适合自己系统的包,并进行下载
下载的gz包如下
- 在服务器上创建/home/java文件夹
- 按照上传target代码包的方式把java包传到服务器上home/java的文件夹下面
- 对java包进行解压
命令行
tar -zxvf jdk-8u311-linux-x64.tar.gz如果失败 前边加sudo 命令 - 此时表示解压完成,我们可以通过以下方式来测试一下java包是否有用
输入
/home/java/jdk1.8.0_311/bin/java -version/home/java/jdk1.8.0_311/bin/javac -version
如果结果这样,说明java包可用
- 接下来,我们依然回到target文件夹下输入
java -jar demo-0.0.1-SNAPSHOT.jar,结果
出现这种原因我想大家应该能够猜到,很显然,环境变量没有配置,所有全局是没有java命令的
- 配置全局java命令
输入
vi /etc/profile点击键盘i进入编辑模式,在文件最后输入如下代码
#set java environment
JAVA_HOME=/home/java/jdk1.8.0_311
CLASS_PATH=.:$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASS_PATH PATH
按键盘Esc退出编辑输入:wq回车进行保存,输入source /etc/profile回车
输入vi ~/.bashrc点击键盘i进入编辑模式,在文件最后输入如下代码
#set java environment
JAVA_HOME=/home/java/jdk1.8.0_311
CLASS_PATH=.:$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASS_PATH PATH
按键盘Esc退出编辑输入:wq回车进行保存,输入source ~/.bashrc回车
- 测试一下java命令行是否配置
说明已配置成功
- 这次,我们依然回到target文件夹下输入
java -jar demo-0.0.1-SNAPSHOT.jar,这次的结果是
看起来是启动了,那我们通过ip去访问一下
在浏览器中输入http + 公网ip + 接口(/test/hello)
终于成功了
可是但是还有一个问题,就是我们一旦离开阿里云网页,服务器就会停止,事实上我们输入的命令行还不够全面,输入nohup java -jar demo-0.0.1-SNAPSHOT.jar,关掉阿里云网页,你会发现服务依然还在运行
对接接口
- config配置跨域
- 增加接口请求
- 请求接口
谢谢大家,兄弟们,如有收获,能给👍 👍 👍吗