前端,简单的写一个java接口,并部署到服务器

2,506 阅读4分钟

背景介绍:工作有一段时间了,是时候了解一下后端了

工具准备

  1. java代码编辑器IDEA链接,选择社区版(Community),因为免费,土豪随意
  2. java框架Spring Boot 下载地址下载请选择java 8
  3. 阿里云服务器一台这里我选择的是阿里云轻量应用服务器
  4. FTP软件,用来链接阿里云服务器,上传java代码包,这里我选的是WinSCP链接

编写java代码,写一个接口

  • 通过网址start.spring.io/ 下载java框架包,请选择8,不要下错了 image.png
  • 进行解压,导入idea编辑器

image.png demo就是这个样子,现在打开pom.xml文件,在dependencies标签中加入如下代码

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

pom.xml文件最终结果

image.png 接下来在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";
    }
}

image.png 然后我们就可以把文件切换到DemoApplication了,因为main方法在该文件下,点击启动

image.png

image.png 这样就意味着接口已经启动,细心观察一下,你会发现和src同层级多了一个target文件夹,这就是spring boot框架启动自动生成的java包,类似于npm run dev生成存在内存上的前端包 现在打开浏览器http://localhost:8080/test/hello ,你会发现接口已启动

image.png

当然我们可以把启动端口改成80,只需要在src/main/resources文件夹下application.properties文件中增加代码server.port=80,然后重新启动即可

server.port=80

image.png

image.png

  • 到这一步,接口已经完成,接下来打包

image.png

image.png 按照上面三步骤,最终我们会生成一个target文件夹,这个target文件夹的位置和刚才启动的target文件夹是同一位置,此刻打包的target已经把启动生成的target包覆盖掉,区别就是启动生成的target文件夹并没有相关的demo-xxx.jar文件

链接服务器上传代码包

  • 打开阿里云服务器后台 这里以阿里云云服务器ECS为例

image.png

此处复制一下公网ip

  • 打开WinSCP软件

image.png 输入主机名,即刚才复制的ip,用户名,这里是root(linux系统)密码自己设置的密码,如果不知道,可以查看上一张图片,点击重置实例密码;重置一下,然后选择登录

  • 上传target包 链接成功选择上传target包

image.png 上传完成后我们继续打开阿里云后台选择远程连接,第一种方式,点击立即登录

image.png

image.png

image.png

  • 找到我们刚才上传的包在root文件夹下

image.png 我们最终要启动的jar包就是target文件夹下的demo-0.0.1-SNAPSHOT.jar包从网上搜索启动命令即是 java -jar demo-0.0.1-SNAPSHOT.jar,尝试启动,失败了 image.png 原因是因为该服务器下并没有配置java命令,正如我们前端不在电脑上装node.js就没法使用npm命

在服务器上装java环境

有两种方式

  1. 下载压缩包
  2. 在线下载 我选择第一种方式

image.png 下载的gz包如下

image.png

  • 在服务器上创建/home/java文件夹

image.png

  • 按照上传target代码包的方式把java包传到服务器上home/java的文件夹下面

image.png

image.png

  • 对java包进行解压 命令行tar -zxvf jdk-8u311-linux-x64.tar.gz如果失败 前边加sudo 命令 image.png image.png
  • 此时表示解压完成,我们可以通过以下方式来测试一下java包是否有用 输入 /home/java/jdk1.8.0_311/bin/java -version /home/java/jdk1.8.0_311/bin/javac -version

image.png 如果结果这样,说明java包可用

  • 接下来,我们依然回到target文件夹下输入java -jar demo-0.0.1-SNAPSHOT.jar,结果

image.png 出现这种原因我想大家应该能够猜到,很显然,环境变量没有配置,所有全局是没有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命令行是否配置

image.png 说明已配置成功

  • 这次,我们依然回到target文件夹下输入java -jar demo-0.0.1-SNAPSHOT.jar,这次的结果是

image.png 看起来是启动了,那我们通过ip去访问一下

image.png 在浏览器中输入http + 公网ip + 接口(/test/hello)

image.png

终于成功了

可是但是还有一个问题,就是我们一旦离开阿里云网页,服务器就会停止,事实上我们输入的命令行还不够全面,输入nohup java -jar demo-0.0.1-SNAPSHOT.jar,关掉阿里云网页,你会发现服务依然还在运行

image.png

对接接口

  • config配置跨域

image.png

  • 增加接口请求

image.png

  • 请求接口

image.png

image.png

谢谢大家,兄弟们,如有收获,能给👍 👍 👍吗

参考文章

Spring Boot:快速入门教程

Linux服务器安装Java运行环境,即安装JDK

解决jar包启动关闭窗口后停止项目问题