美文网首页
SpringBoot部署

SpringBoot部署

作者: 宋song一 | 来源:发表于2020-04-24 22:11 被阅读0次

    Tomcat的bin文件夹startup.bat启动需要设置JAVA_HOME环境变量

    1、gradle添加依赖

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.3.4.RELEASE'
    或 compile('org.springframework.boot: spring-boot-starter-web: 2.3.4.RELEASE')

    thymeleaf在springboot 2.X使用时,也需要添加spring-boot-starter-thymeleaf

    2、pom.xml文件

    继承、依赖、插件

    3、配置文件

    1 application配置文件

    用于自动化配置
    application.properties(server.port=8180,高优先级) 或 application.yml
    springboot 2.2对yml支持不大好,尽量使用properties
    application.properties文档
    server.port=8080 。有时需要重启应用
    server.servlet.context-path=/go . 上下文路径(请求路径)
    加载顺序:项目根目录的config子目录 > 项目根目录中 > resources即classpath下的config子目录 > resources
    占位符 ${ }

    server:
      port: ${random.int(1024,3000)}
    

    2 bootstrap配置文件

    bootstrap是应用程序的父上下文,加载优先于application。是spring应用程序外部属性的来源,默认不能被本地相同配置覆盖

    4. 打包部署

    修改本地gradle,distributionUrl=file:///E:/data/gradle-5.2.1-bin.zip

    普通非springboot项目,gradle打jar包后,运行jar包需要在jar包的MANIFEST.MF中添加
    Main-Class: com.demo.Main (后面为启动类(含包名),中间有空格)

    1. 打jar包

    在build.gradle 里面添加这段构建打包配置,即可打出来一个可执行的jar包。

    //构建打包的配置
    jar {
        //遍历依赖,追加到someStirng上
        String someString = ''
        configurations.runtime.each {someString = someString + " lib//"+it.name}
        //指定项目清单
        manifest {
            attributes 'Main-Class': 'com.it.MainApp' //指定启动类
            attributes 'Class-Path': someString  //指定依赖
        }
    }
    
    //指定编码类型
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    
    
    //拷贝jar ,把依赖都放到build/libs/lib中
    task copyJar(type:Copy){
        from configurations.runtime
        into ('build/libs/lib')
    }
    //构建一个自定义任务release , dependsOn 表示它依赖两个子任务 build 和 copyJar
    task release(dependsOn: [build,copyJar]){
        
    }
    点击gradle--Tasks--other--release ,生成jar包
    

    2. 部署云服务器

    1. 上传jar包到 服务器
    2. 使用java -jar 运行即可 ,具体可以参照下面的命令
    Linux 运行jar包命令如下:
    
    方式一:
    
    java -jar shareniu.jar
    特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
    
    那如何让窗口不锁定?
    
    方式二
    
    java -jar shareniu.jar &
    &代表在后台运行。
    
    特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
    
    继续改进,如何让窗口关闭时,程序仍然运行?
    
    方式三
    
    nohup java -jar shareniu.jar &
    
    nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
    
    当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
    
    方式四
    
    nohup java -jar shareniu.jar >temp.txt &
    解释下 >temp.txt
    
    command >out.file
    
    command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
    
    查看端口备哪个进程占用
    netstat -lnp|grep 8081
    

    注意:

    1. 代码没有放在包里, 入口类一定要在包里面。 入口类放在根包

      com.it / MainApp

      App

    2. 未来的所有代码都放在入口类包下的子包里面。

      com.it.controller

      com.it.service

      com.it.util

    3. 为什么一定要这么放。

      有原因的。因为@SpringBootApplication 这个注解会扫描入口类所在包以及它的子包所有类,以便识别这些类上面是不是有注解。 @Controller | @Service | @Repository ...

    相关文章

      网友评论

          本文标题:SpringBoot部署

          本文链接:https://www.haomeiwen.com/subject/wolfwhtx.html