前言
最近做一个项目,实现用户免密单点登录腾讯企业邮箱
https://exmail.qq.com/。
项目是架构是Springboot + Redis
类型,部署环境是一台未配置任何开发环境的Windows 服务器
。所以需要先安装配置 JDK,安装 Redis,再将 Springboot 服务部署上去。
对腾讯企业邮箱免密单点登录感兴趣的可以到官方开发者中心研究: https://exmail.qq.com/qy_mng_logic/doc#10036
一、JDK 安装配置
因为项目用到的是Springboot2.0
版本,所以需要JDK1.8
以上版本。
官网下载: https://www.oracle.com/java/technologies/javase-downloads.html
百度云下载: 链接:https://pan.baidu.com/s/1fg2E2ecUziT2AgO2iit-yw 提取码:l7ju
1.1 JDK 安装
1.2 JDK 环境变量配置
鼠标右键桌面计算机图标,点击属性
选择点击高级系统设置
选择点击环境变量
新建系统变量,变量名为JAVA_HOME
,变量值为你安装的JDK位置。
编辑系统变量Path,在变量值末尾加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
。
新建系统变量,变量名为classpath
,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar
最后全部保存确定。然后在cmd命令行窗口,输入 java -version
命令,出现下面结果则表示 JDK 安装并配置完成。
二、安装 Redis
百度云下载: 链接:https://pan.baidu.com/s/1IUz-RPXw9NmSysMDqJNPcQ 提取码:sshi
下载后解压到你想安装的目录下
2.1 前台启动 Redis 服务
在安装目录下启动cmd
命令行窗口,然后输入redis-server.exe redis.windows.conf
命令,回车。如果出现一个方形图标,即服务启动成功。
不过此种启动方式,是前台启动方式,只创建 Redis 临时服务,不会在window Service
列表出现 Redis 服务名称和状态,此窗口关闭,Redis 服务会自动关闭。
通过客户端连接测试,在安装目录下再启动一个cmd
命令行窗口,然后输入redis-cli.exe
命令,回车。如下则连接成功。
2.2 修改端口和密码
在Redis的安装目录下找到redis.windows-service.conf
文件,用文本编辑器
打开。找到port
所在行,把默认的端口更改,例如改为6380。找到 requirepass 所在行,回车另起一行,例如输入requirepass 123456
,这样Redis密码就为123456,设置好保存后文件,重启redis服务。
客户端连接测试。输入redis-cli.exe -p 6380
连接,此时我们随便输入命令例如列出所有键命令keys *
,会报错,因为我们还未输入密码验证。再输入auth 123456
,123456是我们刚设置的Redis密码。就可以执行命令了。
2.3 服务方式安装启动
前台方式启动redis服务,则需要保持打开命令行窗口启动着。窗口一关则服务停止。以下演示将 Redis 设置为 Windows下的服务,并在后台启动。
首先将 Redis 注册为服务,在 Redis 安装目录下启动一个cmd命令行窗口,然后输入redis-server.exe --service-install redis.windows.conf --loglevel verbose
命令,回车。注意!!!一定要把临时服务关闭,否则安装不上。
再输入redis-server.exe --service-start
命令,启动服务。
- 启动服务:redis-server.exe --service-start
- 暂停服务:redis-server.exe --service-stop
- 卸载服务:redis-server.exe --service-uninstall
三、部署 Java 服务
Java项目是通过Springboot
开发的,然后打成jar
包形式。
3.1 命令行临时启动服务
正常我们是通过命令
java -jar xx.jar
启动Java服务,但是此方式有个缺点是要一直保持打开着窗口。
3.2 后台启动Java服务
新建
run.bat
文件,在文件中输入以下内容,保存。最后双击run.bat文件即可后台启动Java服务。
@echo off
title Service Run
color 3E
start javaw -jar -Xbootclasspath/a:application.yml exmail-sso-server.jar
echo ------------------------ exmail service -------------------------
echo .
echo -------------------- service start succefully -------------------
echo .
echo -----------------------------------------------------------------
timeout /t 3
exit
title Service Run
:是为启动窗口设置窗口名称 Service Run
color 3E
:设置窗口颜色为3E
-Xbootclasspath/a:application.yml
:启动服务使用外部配置文件 application.yml,这里是使用相对路径,application.yml 文件和 exmail-sso-server.jar 文件在同一目录下。如果不使用外部配置文件,这串命令可以去除。
echo
:打印我们想在控制台输出的内容,也可去除。
timeout /t 3
:窗口在多久后自动关闭,这里设置3秒。
双击 run.bat
文件启动服务后,显示如下窗口则代表服务启动成功。
但是如果我们想要终止删除这个Java后台服务呢,可以按如下方式终止:
- 首先通过服务端口号找到服务进程ID,命令为
netstat -ano |findstr 端口号
,也可以通过命令tasklist
在进程列表中查找。- 杀死进程,命令为
taskkill /pid 进程号
。如果报【错误:无法种子PID为xxxx的进程
】错误,则需要使用taskkill -F /pid 进程号
命令强制杀死进程。查看杀进程命令的帮助命令为
taskkill /?
也可以通过system idle process
杀掉进程,例如我们这是使用javaw
命令启动服务的,所以可以使用taskkill -f -t -im javaw.exe
杀死进程。
例如,我的关闭服务脚本文件shutdown.bat
文件内容如下
@echo off
title Service Shutdown
color 3E
taskkill -f -t -im javaw.exe
echo ------------------------ exmail service ------------------------
echo .
echo -------------------- service stop succefully -------------------
echo .
echo ----------------------------------------------------------------
timeout /t 3
exit
双击 shutdown.bat
文件后,显示窗口如下
我的服务文件路径位置存放如下