springboot打包不同环境配置以及shell脚本部署的方法

SpringBoot打包不同环境配置以及Shell脚本部署的方法

在实际的应用中,我们需要针对不同的环境(如开发、测试、生产)进行配置,同时我们也需要使用Shell脚本一键部署以简化部署操作。

下面就以一个基础的Spring Boot应用为例,介绍一下如何实现不同环境配置以及Shell脚本部署。

1.不同环境配置

1.1 环境配置文件

首先,在resources目录下创建不同环境的配置文件,如application-dev.yml、application-test.yml和application-prod.yml。在这些配置文件中,我们可以将相同的配置项进行抽离并放入application.yml中,然后在不同的配置文件中进行覆盖即可。

示例如下:

application.yml

server:
  port: 8080

logging:
  level:
    root: info

application-dev.yml

spring:
  profiles:
    active: dev

logging:
  level:
    root: debug

application-test.yml

spring:
  profiles:
    active: test

logging:
  level:
    root: info

application-prod.yml

spring:
  profiles:
    active: prod

logging:
  level:
    root: error

1.2 读取环境变量

在应用启动时,Spring Boot会根据application-{profile}.yml的格式读取配置文件,并根据spring.profiles.active属性的值加载不同的配置。

因此,在启动应用时,我们需要设置spring.profiles.active参数,示例代码如下:

java -jar app.jar --spring.profiles.active=dev

这样,在运行时,Spring Boot会主动查找激活的配置文件application-dev.yml,并覆盖application.yml中的配置。

2.Shell脚本部署

2.1 编写脚本

在项目根目录下,创建deploy.sh脚本文件,用于实现自动化部署。

示例代码如下:

#!/bin/bash

# 定义相关参数
APP_NAME="myapp"
JVM_OPTS="-Xmx1024m -Xms512m"
JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"

# 打包程序
mvn clean package -DskipTests

# 停止应用
PID=$(ps ax | grep ${APP_NAME} | grep java | grep -v grep | awk '{print $1}')
if [ -n "$PID" ]; then
  echo "Stoping ${APP_NAME} ..."
  kill -9 $PID
fi

# 启动应用
nohup java -jar ${APP_NAME}.jar ${JVM_OPTS} ${JAVA_OPTS} > /dev/null 2>&1 &

echo "Deploy ${APP_NAME} successfully."

该脚本文件中,首先定义了一些参数,如应用程序名、JVM参数、Java参数等。

然后执行了mvn clean package -DskipTests,对应用程序进行打包。接着根据APP_NAME查找应用进程,如果存在,则先停止进程。最后使用启动jar包的命令来重启应用程序。

2.2 调用脚本

运行deploy.sh脚本文件时,需要给与可执行权限,如下命令:

chmod +x deploy.sh

然后,执行deploy.sh,即可完成自动化部署。

./deploy.sh

3.总结

通过以上的步骤,我们实现了基于Spring Boot实现不同环境配置以及shell脚本部署的方法。这些方法可以使我们开发、测试、生产不同阶段的部署变得更加简单高效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot打包不同环境配置以及shell脚本部署的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java中Arrays的介绍及使用方法示例

    Java中Arrays的介绍及使用方法示例 1. 什么是Arrays 在Java编程语言中,Arrays是一个类,用来操作数组的工具类,包含了一些静态方法,如排序和二分查找等。 2. Arrays的常用方法 2.1 初始化数组 Arrays类提供的最常用的初始化数组的方法是:Arrays.fill(),可以用来填充一个数组。 // 初始化长度为10的数组,全…

    Java 2023年5月26日
    00
  • Spring-全面详解(学习总结)

    Spring-全面详解(学习总结) Spring是一个开源的Java框架,它提供了一种轻量级的、非侵入式的解决方案,用于构建企业级应用程序。本文将详细讲解Spring框架的各个方面,包括IoC容器、AOP、Spring MVC、Spring Boot等。 IoC容器 IoC(Inversion of Control)是Spring框架的核心,它通过IoC容器…

    Java 2023年5月15日
    00
  • SpringBoot浅析安全管理之Shiro框架

    SpringBoot浅析安全管理之Shiro框架指南 简介 Shiro 是一个强大且易用的 Java 安全框架,提供身份验证、授权、加密和会话管理等功能,可以相对简单地集成到你的应用中,并提供了灵活的配置选项。在 Spring Boot 应用中使用 Shiro,可以提供全面的安全保护,并为开发人员提供便利的开发体验。 Shiro 核心概念 Shiro 包含以…

    Java 2023年5月20日
    00
  • 详解如何把cmd黑窗口把java文件打包成jar

    下面我为你详细讲解如何把cmd黑窗口把java文件打包成jar: 什么是Jar文件 Java ARchive文件是Java平台独立的软件包格式,它包含Java Class文件、META-INF目录等资源,可以方便地被Java虚拟机(JVM)和相关的开发工具所识别。 如何将Java文件打包成Jar 第一步:编写Java代码 首先,你需要编写Java代码,并确保…

    Java 2023年5月26日
    00
  • 教你使用springboot配置多数据源

    使用SpringBoot配置多数据源,需要先在pom.xml文件中添加对jdbc和mysql-connector-java的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-j…

    Java 2023年5月20日
    00
  • mybatis查询语句的背后揭秘

    接下来,我将详细讲解“mybatis查询语句的背后揭秘”的完整攻略。 背景介绍 Mybatis 是一个开源的持久化框架,它支持自定义 SQL、存储过程以及高级映射的能力。它通过 XML 或注释的方式将 Java 对象映射到关系数据库中的表,以及将 SQL 的结果映射为 Java 对象。 Mybatis 的核心是 SQL 映射语句。在 Mybatis 中,我们…

    Java 2023年5月20日
    00
  • Java实现excel表格转成json的方法

    下面是详细讲解“Java实现excel表格转成json的方法”的完整攻略。 第一步:导入依赖 使用Java实现excel表格转成json,我们需要用到以下两个依赖: jackson:Java的JSON处理库 poi:操作Excel表格的Java库 <dependencies> <dependency> <groupId>c…

    Java 2023年5月26日
    00
  • SpringBoot 整合mapstruct的实现步骤

    下面是详细讲解“SpringBoot 整合 MapStruct 的实现步骤”的完整攻略。 什么是 MapStruct MapStruct 是一个在编译时期通过注解自动生成 Java Bean 映射代码的框架。它具有简单易用、高效准确等特点,可以大幅度提升 Java Bean 映射的开发效率。 SpringBoot 整合 MapStruct 的实现步骤 步骤一…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部