博客
关于我
spring boot2.0项目如何开发、调试、打包到最后的投产上线(一)
阅读量:347 次
发布时间:2019-03-04

本文共 2415 字,大约阅读时间需要 8 分钟。

在开发、调试、打包到最后的投产上线的过程中,Spring Boot项目的测试与部署方案至关重要。以下从开发到生产环境部署的完整流程为您详细解析。

开发阶段

单元测试是开发阶段的基石。Spring Boot对单元测试的支持非常完善,以下是具体操作方法:

  • 在POM文件中添加测试依赖

    在项目的依赖管理中添加Spring Boot Starter Test包:

    org.springframework.boot
    spring-boot-starter-test
    test
  • 编写测试类

    使用Spring Boot提供的@SpringBootTest@RunWith(SpringRunner.class)注解编写测试类。例如,简单的Hello World测试:

    @RunWith(SpringRunner.class)  @SpringBootTest  public class ApplicationTests {    @Test    public void hello() {      System.out.println("hello world");    }  }

    更复杂的场景可以注入DAO或Service层进行验证。

  • 集成测试

    在开发完成后,进入集成测试阶段。Spring Boot项目的主入口通常位于Application类中,通过运行run()方法即可启动项目。为了避免每次代码修改都要手动重启服务,建议配置热部署:

  • 添加开发工具依赖

    在POM文件中添加Spring Boot DevTools包:

    org.springframework.boot
    spring-boot-devtools
    true
  • 配置热部署插件

    修改build.gradlepom.xml文件,添加热部署插件:

    org.springframework.boot
    spring-boot-maven-plugin
    true
  • 投产上线

    项目进入生产环境部署阶段,通常有两种打包方式:

  • 打成JAR包

    使用Maven命令打包:

    mvn clean package -Dmaven.test.skip=true

    生成的JAR文件位于target/目录下,启动命令为:

    java -jar target/spring-boot-scheduler-1.0.0.jar

    或者在后台运行:

    nohup java -jar target/spring-boot-scheduler-1.0.0.jar &
  • 打成WAR包

    如果需要部署到外部服务器(如Tomcat或Jetty),可以通过以下方式打包:

    • 修改POM文件

      <packaging>jar</packaging>改为<packaging>war</packaging>

    • 排除Tomcat依赖

      在POM中添加:

      org.springframework.boot
      spring-boot-starter-tomcat
      provided
    • 创建ServletInitializer

      创建ServletInitializer.java,继承SpringBootServletInitializer,并注册启动类:

      public class ServletInitializer extends SpringBootServletInitializer {    @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {      return application.sources(Application.class);    }  }
  • 生产运维

  • JVM参数优化

    在生产环境中,建议根据实际情况调整JVM参数。例如,指定内存分配和垃圾回收策略:

    java -XX:CICompilerCount=3 -XX:InitialHeapSize=234881024 -XX:MaxHeapSize=3743416320 -XX:MaxNewSize=1247805440 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=78118912 -XX:OldSize=156762112 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
  • 日志管理

    配置日志框架(如Logback),实现精细化日志管理,便于故障定位和监控。

  • 转载地址:http://tise.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现anagrams字谜算法(附完整源码)
    查看>>
    Objective-C实现ApproximationMonteCarlo蒙特卡洛方法计算pi值算法 (附完整源码)
    查看>>
    Objective-C实现area under curve曲线下面积算法(附完整源码)
    查看>>
    Objective-C实现argmax函数功能(附完整源码)
    查看>>
    Objective-C实现arithmetic算术算法(附完整源码)
    查看>>
    Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
    查看>>
    Objective-C实现articulation-points(关键点)(割点)算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现average absolute deviation平均绝对偏差算法(附完整源码)
    查看>>
    Objective-C实现average mean平均数算法(附完整源码)
    查看>>
    Objective-C实现average median平均中位数算法(附完整源码)
    查看>>
    Objective-C实现average mode平均模式算法(附完整源码)
    查看>>
    Objective-C实现avl 树算法(附完整源码)
    查看>>
    Objective-C实现AvlTree树算法(附完整源码)
    查看>>
    Objective-C实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
    查看>>
    Objective-C实现BACKTRACKING 方法查找集合的幂集算法(附完整源码)
    查看>>
    Objective-C实现bailey borwein plouffe算法(附完整源码)
    查看>>
    Objective-C实现balanced parentheses平衡括号表达式算法(附完整源码)
    查看>>
    Objective-C实现base64加密和base64解密算法(附完整源码)
    查看>>
    Objective-C实现base64加解密(附完整源码)
    查看>>