Spring Boot学习笔记(二)打包与发布

用IDEA新建Spring工程时会有选项选择打包成jar或者是war包,其实项目打包还有一种ear包,三者其实都是压缩包,区别在于压缩了什么内容。具体可以看这里:jar、war、ear打包的异同。

一、打包成jar发布

Spring Boot默认打包成jar的时候,运行Application是使用内嵌的Tomcat服务器的,免去了复杂的配置过程,所以在新工程里只写了个Controller就能运行起来并且可以被访问。打包成jar,部署的时候也可以直接通过

java -jar xxx.jar

运行应用,或者通过

nohup java -jar xxx.jar &

让应用在后台运行,不打印信息,这种情况下要想结束进程我一般的做法是:

#查找端口号(如8080)对应的进程号,如为45500
lsof -i :8080 
#杀死进程
kill -9 45500

二、打包成war发布

使用jar包方便是方便,但是不适于部署包含前后端Web应用的项目,比如网站;有些情况下必须要使用外部的Tomcat服务器。
这时就需要新建基于war的工程,或者把jar改成war,怎么改呢?

2.1 修改pom.xml

2.1.1 将packaging打包方式改成war

    war

2.1.2 添加外部tomcat的依赖

        
        org.springframework.boot
        spring-boot-starter-tomcat
        provided
        
2.2 修改Application
//@SpringBootApplication
//public class DemoApplication {
//
//    public static void main(String[] args) {
//        SpringApplication.run(DemoApplication.class, args);
//    }
//}

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
2.3 部署

打包成war后,将target目录下的war包复制到tomcat服务器下面的webapps目录下,启动/重启tomcat,tomcat会自动解压war,这时便可以访问应用了。值得注意的是,访问路径要加下war包的名字,比如jar包访问时为:localhost:8080/sayHi,war包名为demo.war,那此时的访问路径应为:localhost:8080/demo/sayHi。

你可能感兴趣的:(Spring Boot学习笔记(二)打包与发布)