idea构建springBoot项目并部署到生产环境

工欲善其事,必先利其器。

一:idea创建springBoot项目 

   不难发现,还是有很多小朋友在使用eclipse开发java项目。当你接触IDEA后,一切都变得美好了。

     使用IDEA创建一个springboot项目是一件极其简单的事情。界面化的依赖选择令人心旷神怡,有木有。

     下面就和我一起轻扣IDEA的大门,新建一个springboot项目。

1.打开IDEA,点击 +Create New Project. 开始创建一个新项目。

  

 

2.在左侧菜单找到并点击 Spring Initializr,点击next。注意,这里idea默认使用https://start.spring.io提供的在线模板,所以需要保证网络畅通。

当然也可以选择下面的Custom从指定的链接加载模板。

       这时,就有小朋友要问了。要是没网不就GG了,我还是用eclipse吧。放心,IDEA不可能这么菜。如何在本地搭建spring Initializr服务器,

请自行百度。后面会写一篇教程,先在这里立个flag吧。

 

3.按实际情况依次填写项目信息。其中Type属性可以下拉选择project或者pom,Packaging属性可下拉选择jar或者war(Maven的东西不需要再提了吧)。

填写完毕后点击 Next。

 

4.最激动人心的界面来了!!!你可以从左面选择大类,然后在窗口中间勾选需要的依赖。右边可以看到已选择的依赖项。

上边下拉框可以选择Spring Boot的版本,这里使用最新版2.2.0 M4。完成后点击 Next。

这里我选择了“Web”类别下的“Spring Web Starter”、“Template”类别下的“Thymeleaf”以及“SQL”类别下的“Spring Data JPA”和“Mysql Driver”。

      

 

 5. 终于,最后一步了。设置项目名称Project name 和 工程保存路径 Project location。完成后,点击 Finish。

 

 

 6.等待IDEA构建好项目后,项目结构如下图所示。根据每个人在第4步选择的依赖不同,目录结构大同小异。

 

 7.再看看pom.xml,我们需要的依赖都静静的躺在里面。是不是so easy,妈妈再也不用担心我找依赖了。

 

8.测试请求。

@RestController public class DemoController { 
        @GetMapping("/test") 
        public String test(){
             return "Success" ; 
        } 
}

 

配置文件

application.yml

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  profiles:
    active:
    - dev

 application-dev.yml

server:
  port: 8080
  
spring:
  application:
    name: me

 

9.写个简单页面试试新建的工程好不好使。

spring boot,启动。

 

      9.访问看看效果如何,http://localhost:8080/test

二.springBoot项目的部署

在本地开发完的Java项目如果只是在本地运行是非常方便的,在IDE里执行运行在带有Main函数的Java文件里运行run就可以了。在服务器上运行Java项目就稍微麻烦一些,但是也不复杂。这些都是在刚学习Java时候都必须会的东西,用了IDE后反而会让你忘记最开始接触Java时候的一些知识点。

常用方式

本地写的demo程序打包成demo.jar,上传到Linux服务器后,执行jar包有如下几种方式。

 mvn install  或者  mvn clean package

打包项目

我们需要将项目打包并且上传到服务器

 

编写脚步操作 java 服务

(1) 启动脚本 start.sh

nohup java -jar me-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev &

(2) 停止脚本 stop.sh

PID=$(ps -ef | grep me-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi

(3) 新建空白Log文件,保存日志 nohup.out

touch nohup.out

(4) 查看日志 log.sh

tail -f nohup.out

注意,如果是在windows用notepad++编写的,要把文档格式转换成UNIX,菜单:编辑-->文档格式转换-->转换成UNIX格式

(5) 完整目录如下图

(6)操作java服务:脚本创建完成后就可以操作 java 服务了

# 启动java
./start.sh
# 停止java服务
./stop.sh
# 查看日志
./log.sh

 启动服务  若无权限  赋予 app文件夹权限   App文件夹是自己新建的

Linux 给文件夹或者文件增加权限

chmod -R 777 文件夹
参数-R是递归的意思
777表示开放所有权限

chmod 777 test.sh

chmod +x 某文件

如果给所有人添加可执行权限:chmod a+x 文件名;
如果给文件所有者添加可执行权限:chmod u+x 文件名;
如果给所在组添加可执行权限:chmod g+x 文件名;
如果给所在组以外的人添加可执行权限:chmod o+x 文件名;

4、访问接口 是否启动成功

 

 

 

三:4种部署springBoot jar包方式的区别

第1种

java -jar demo.jar

说明:用这种方法启动后,不能继续执行其它命令了,如果想要继续执行其它命令,就都打断,打断一般用ctrl+c。

第2种

java -jar demo.jar &

第2种在第1种方式的基础上在命令的结尾增加了&,&表达的意思是在后台运行。
这种方式可以避免打断后程序停止的问题,但是避免不了关闭当前窗口后程序停止的问题。

第3种

nohup java -jar demo.jar &

第3种在第2种方式的基础上,在命令的最前面增加了nohup。nohub是什么?

nohup是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。

加了nohup后,即使关掉命令窗口,后台程序demo.jar也会一直执行。

第4种

nohup java -jar demo.jar >1.txt &

第4种在第3种的基础上,在后面增加了>1.txt,意思是将nohup java -jar demo.jar的输出重定向到1.txt文件中,即输出内容不打印到当前窗口上,而是输出到1.txt文件中。

第3种没有加>1.txt,它的输出重定向到nohup.out文件中,nohup.out也就是nohup命令的默认输出文件。

总结

通过几种方式的对比,能得出结论—执行jar文件用第4种方式最好,同时可以把它写成一个脚本,不用每次都写一遍。新建start.sh,根据我上传的demo.jar,输出到1.txt中,具体脚本如下:

nohup java -jar demo.jar >1.txt &

一句话:Linux下执行jar文件,一定要用nohup命令

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章