Springboot -war部署

一、修改pom.xml文件

    1.1  修改打包形式


war

    1.2 移除嵌入式tomcat插件


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

1.3 添加servlet-api的依赖

           作用:编写servlet时用我们自己引用的包,而运行时用tomcat自己的包,这样就不用冲突了,又能正常开发代码

下面两种方式都可以,任选其一

第一种:

    javax.servlet
    javax.servlet-api
    3.1.0
    provided



第二种:

    org.apache.tomcat
    tomcat-servlet-api
    8.0.36
    provided

1.4 maven打包配置


        
        demo
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    ${jdk.version}
                    ${jdk.version}
                    ${project.build.sourceEncoding}
                
            
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                1.5.4.RELEASE
                 
                    com.web.boot.ApplicationStart
                
                
                    
                        
                            repackage
                        
                    
                
            
        
    

1.5 修改启动类,并重写初始化方法

1.5.1 我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
@SpringBootApplication
public class ApplicationStart{
    public static void main(String[] args) {
        SpringApplication.run(ApplicationStart.class, args);
    }
}
1.5.2 使用外置的tomcat启动,我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
/** 
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 
 */ 
@SpringBootApplication
public class ApplicationStart  extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类 
        return builder.sources(ApplicationStart.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(ApplicationStart.class, args);
    }
}

SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。

spring boot就是为了简化开发的,也就是用注解的方式取代了传统的xml配置。

SpringBootServletInitializer就是原有的web.xml文件的替代。

二.打包部署

2.1在项目根目录下(即包含pom.xml的目录),在命令行里输入: 

clean package -D maven.test.skip=true

Springboot -war部署_第1张图片

 

 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。 

Springboot -war部署_第2张图片

 

 2.2  然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat

Springboot -war部署_第3张图片

 

 即可自动解压部署。

Springboot -war部署_第4张图片

 

 三.运行

3.1 ${Tomcat_home}/bin/目录下执行startup.bat(windows)

3.2 ${Tomcat_home}/bin/目录下执行startup.sh(linux)

 

 四.访问测试

Springboot -war部署_第5张图片

 

 

注意事项:

使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的端口

将失效,请使用${Tomcat_home}/conf/server.xml中的端口进行访问。

 Springboot -war部署_第6张图片

 

 

为了防止应用上下文所导致的项目访问资源加载不到的问题,

建议pom.xml文件中标签下添加标签,且需和application.properties(或者application.yml)中server.context-path的值一致

你可能感兴趣的:(Springboot -war部署)