SpringBoot 本身支持有两类的 WEB 容器:默认的 Tomcat、Jetty,那么现在如果从实际的角度来看,在 SpringBoot 运行的时候即使没有 WEB 容器,那么也可以采用自定义的方式实现 WEB 容器的启动。
---------------------------------------------------------------------------------------------
开始:修改 pom.xml 配置文件:· 首先将打包的类型设置为 war 文件
<groupId></groupId> <artifactId></artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
项目最终需要进行打包操作,所以还需要设置一个 maven 的 war 文件的打包插件:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>springboot-tom</warName> </configuration> </plugin>更新完成 maven 项目之后会提示用户你现在缺少 webapps/WEB-INF/web.xml 配置文件所以可以通过 Tomcat 安装目录拷贝此文件到项目之中;
如果现在你的项目要想以 Tomcat 的形式运行,那么必须对 SpringBoot 的启动类做有一个简单的配置处理;
package cn.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.ImportResource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @SpringBootApplication @ImportResource(locations = "classpath:spring-common.xml") public class SpringbootBaseApplication extends SpringBootServletInitializer { // 必须继承指定的父类 @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder builder) { return builder.sources(SpringbootBaseApplication.class) ; } @RequestMapping("/") @ResponseBody String home(){ return "hello world"; } public static void main(String[] args) { SpringApplication.run(SpringbootBaseApplication.class, args); } }然后打包:
把打好的war包放到tomcat webapp下面
启动并访问:
完成......