前言

最近刚刚接触spring boot 和spring cloud,只知道可以直接通过main方法启动服务,一直不会将项目部署到tomcat中,今天学了一下,做个记录备忘.

步骤

pom文件

在pom文件中引入spring-boot-starter-web,然后排除掉内置的tomcat,最后引入javax.servlet-api,修改package为war,详细如下


    4.0.0

    SpringCloudServer
    Spring_Cloud_Server
    1.0-SNAPSHOT
    springcloudserver
    war
    
    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.6.RELEASE
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                
                Dalston.SR2
                pom
                import
            
        
    
    
        
        
            org.springframework.boot
            spring-boot-starter-web
            
            
                
                    org.springframework.boot
                    spring-boot-starter-tomcat
                
            
        

        
        
            javax.servlet
            javax.servlet-api
        

       
            org.springframework.cloud
            spring-cloud-starter-eureka-server
        
    

主函数启动类

主函数启动类需要继承SpringBootServletInitializer,重写config方法

import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublic class ServerApplication_First extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {        return builder.sources(ServerApplication_First.class);
    }    public static void main(String[] args) {        new SpringApplicationBuilder(ServerApplication_First.class).web(true).run(args);
    }
}

注意:因为把spring boot自带的tomcat排除了,所以无法再使用main主函数启动程序

注意事项