已部署到AWS的Spring Boot程序如何启动运行?
是否需要实现REST接口才能运行主方法
不需要,Spring Boot主方法的运行和是否存在REST接口没有任何关联。只要项目依赖配置正确,执行SpringApplication.run()就能正常启动:
- 如果你引入了
spring-boot-starter-web这类web依赖,启动时会自动启动内嵌的Tomcat/Jetty服务器,默认监听8080端口。哪怕没有编写任何REST接口,服务也会正常运行,只是访问对应路径会返回404状态码 - 如果你没有引入web依赖,项目启动完成后如果没有其他常驻任务(比如定时任务、消息监听逻辑),程序会执行完成后自动退出,属于正常现象
部署完成后远程启动应用的步骤
- 第一步:远程连接AWS服务器
通常使用SSH连接,命令如下(根据操作系统调整用户名:Amazon Linux默认用户为ec2-user,Ubuntu默认用户为ubuntu):ssh -i "你的密钥对文件.pem" 用户名@AWS实例公网IP - 第二步:定位构建产物
Maven构建的jar包默认存放在项目根目录的target文件夹下,Gradle构建的jar包默认存放在build/libs文件夹下,文件后缀为.jar - 第三步:启动应用
临时测试运行可直接执行:java -jar 你的应用包名.jar
如果需要关闭SSH窗口后程序仍在后台常驻运行,执行以下命令,运行日志会输出到同目录的app.log文件中:nohup java -jar 你的应用包名.jar > app.log 2>&1 & - 第四步:验证启动状态
执行tail -f app.log查看实时启动日志,出现「Started Application in X seconds」类的提示即说明启动成功。如果是web应用,需要提前在AWS安全组中放行服务端口(默认8080),即可通过公网IP加端口访问服务。
如果需要配置应用开机自启,可以使用systemd服务配置,示例如下:
配置文件路径:
/etc/systemd/system/springboot-app.service[Unit] Description=自定义Spring Boot应用 After=network.target [Service] User=ec2-user ExecStart=/usr/bin/java -jar /你的应用jar包完整路径.jar Restart=always [Install] WantedBy=multi-user.target配置完成后执行
systemctl daemon-reload重载配置,systemctl start springboot-app启动服务,systemctl enable springboot-app设置开机自动启动。
内容的提问来源于stack exchange,提问作者Shar
相关产品推荐
相关产品推荐

