使用maven打包spring-boot web工程

Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat、weblogic等等),当然在此之前你要对程序入口做简单调整。

1、打包成jar:

Spring Boot 打成jar包要可以运行,必须使用Spring Boot提供的一个插件,不然打成的普通的jar是无法运行Spring Boot工程的,一般会提示 jar中没有主清单属性。 插件如下:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

pom.xml中jar可以不指定,默认是jar。然后执行mvn package 就可以达成jar包,在服务器上输入:java -jar XXX.jar 即可运行。

注:上面的配置需要先在pom.xml中指定spring-boot的parent,如


      org.springframework.boot
      spring-boot-starter-parent
      1.5.5.RELEASE
  

2、打包成war:

1)在 pom.xml 文件将 jar 改为 war 

2)加上build插件,表明此Web工程不需要web.xml文件


    org.apache.maven.plugins
    maven-war-plugin
    
        false
    

3)排除 Spring Boot Tomcat 组件,scope 属性设为 provided


    org.springframework.boot
    spring-boot-starter-tomcat
    provided

4)在 Application 即main方法类同包下创建实现外部 Web 容器启动的启动类 

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class WxServletInitializer extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(App.class);//App 为原main函数启动类
    }
}

这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似,只不过在这里不需要编写额外的XML文件了。而这个类的位置和要Application.java在同一个目录下。

然后使用mvn package打成了war包。将war包放到tomcat的webapp下,启动tomcat,在浏览器上输入:

http://localhost:8080/Test-0.0.1-SNAPSHOT/test?name=abc

即可访问。

你可能感兴趣的:(spring-boot)