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

(若动态配置指定启动环境

#启动指定环境
  profiles:
    active: ${profiles.active}

打包指定启动环境mvn clean package -P dev)

 

打包项目

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

 

编写脚步操作 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包方式的区别

启动指定环境
执行java -jar xxx.jar --spring.profiles.active=test,测试环境的配置(test)

 执行java -jar xxx.jar --spring.profiles.active=prod,生产环境的配置(prod)

第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.log

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命令的默认输出文件。

第五种

日志文件会变得越来越大,所以我们需要按天来存储日志,每天生成一个日志文件 ./日志目录/

nohup java -jar demo.jar  >> ./log/nohup-$(date +%Y-%m-%d).log 2>&1 & 

 

 

总结

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

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

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

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力为您解答。以下是将Spring Boot项目部署到Docker的步骤: 1. 首先,您需要为您的Spring Boot项目创建一个Dockerfile文件。Dockerfile是一个包含指令的文本文件,用于在Docker容器中构建映像。以下是一个基本的Dockerfile文件示例: ```dockerfile FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 这个Dockerfile文件指定了一个基础映像(openjdk:8-jdk-alpine),将您的Spring Boot项目的JAR文件复制到Docker容器中,并使用ENTRYPOINT指令在容器内运行JAR文件。 2. 接下来,您需要使用Docker命令构建Docker映像。在终端中,导航到包含Dockerfile文件的目录,并运行以下命令: ```bash docker build -t <image_name> . ``` 这个命令将使用Dockerfile文件构建一个Docker映像,并为映像命名为<image_name>。请注意,最后的句点(.)表示Docker应该在当前目录中查找Dockerfile文件。 3. 构建映像后,您可以使用以下命令启动Docker容器: ```bash docker run -p <host_port>:<container_port> <image_name> ``` 这个命令将使用Docker映像启动一个新的Docker容器,并将容器的端口映射到主机的端口。请将<host_port>替换为您希望容器端口映射到的主机端口,将<container_port>替换为容器中应用程序正在侦听的端口,将<image_name>替换为您之前为Docker映像指定的名称。 4. 最后,您可以使用以下命令查看Docker容器的日志: ```bash docker logs <container_id> ``` 请将<container_id>替换为您的Docker容器的ID号。 希望这些步骤可以帮助您将Spring Boot项目部署到Docker中。如果您有任何疑问,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值