Spring Boot入门——tomcat配置

1、通过配置文件配置

server.port = 8080

2、通过程序配置

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;

/**
 * Hello world!
 *
 */
@SpringBootApplication
public class App{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        SpringApplication.run(App.class, args);
    }
    
    /*
     *配置tomcat属性 
     */
    @Bean
    public EmbeddedServletContainerFactory servletContainer(){
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.setPort(8089);  //设置访问端口号
        factory.setContextPath("/hello"); //设置访问主路径
        return factory;
    }
}

3、替换默认的tomcat容器

  a、默认是使用tomcat作为servlet的内嵌容器,首先得排除默认的tomcat,使用jetty容器

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        
        <!-- 排除使用的默认Tomcat -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <!-- 添加jetty容器依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>

  b、启动类中声明不使用默认的容器而是jetty容器

@SpringBootApplication
public class App{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        SpringApplication.run(App.class, args);
    }
    
    /*
     *配置默认的tomcat属性 
     */
   /* @Bean
    public EmbeddedServletContainerFactory servletContainer(){
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.setPort(8089);
        factory.setContextPath("/hello");
        return factory;
    }*/
    
    /*
     *配置默认的jetty属性 
     */
    @Bean
    public EmbeddedServletContainerFactory servletContainer(){
        JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
        return factory;
    }
}

  c、运行项目时一直出现版本不匹配问题,原因是由于Spring-boot1.5.3版本及以上使用jdk1.8,而我在之前的项目中使用1.7,版本不兼容导致。

4、测试的时候不要排除spring-boot内嵌容器,在外部容器中部署项目时再加上以下代码

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        
        <!-- 排除使用的默认Tomcat -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
原文地址:https://www.cnblogs.com/studyDetail/p/7009268.html