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>