Springboot打成war包放入tomcat的webapps中启动

下面具体介绍如何配置springboot项目打成war包

 

  1. 打成war包启动和本地用过main方法启动不同,本地main方法启动是依赖于内置的tomcat,而打成war包是放到tomcat内启动,所以要剔除掉tomcat的依赖部分,但还要保存servlet的部分。需要在pom.xml中增加配置如下:
    		war
    		
    		
    			
    			org.springframework.boot
    			spring-boot-starter-web
    			 
    		        
    		            org.springframework.boot
    		            spring-boot-starter-tomcat
    		        
    		    
    		
    		
    		
    		
                org.springframework.boot
                spring-boot-starter-tomcat
                
                provided
    	    
    

     

  2. 方法主入口继承SpringBootServletInitializer类并实现configure方法
    /**
     * 配置除去了自动配置数据源的类-DataSourceAutoConfiguration,因为
     * 这个注解会把sping的配置的数据源全部都自动注入,不会默认注入一个,当使用其他数据源时再调用另外的数据源。
     * @author zhanglf
     *
     */
    @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
    public class Application  extends SpringBootServletInitializer{
    
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    	@Override
    	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    		 return builder.sources(Application.class);
    	}
    }

     

经过以上两步即可实现打成war包,并在tomcat中正常启动。但是!如果想访问controller层的方法,这些配置还是不够的。还要注意tomcat版本兼容问题,springboot2.0以上与tomcat7会有兼容问题,可以选择提升tomcat版本,或者在tomcat的lib中添加依赖jar包

 

你可能感兴趣的:(JAVA)