1 背景
最近兩個項目都是用Springboot寫後端接口,我們在創建springboot項目時,會選擇運行包是jar還是war,當我們選擇jar時,運行啓動沒問題,但是打成war包,就要配置很麻煩,但是修改成war後,發現運行啓動不行了。期間公司組織了一次springboot 培訓,恰巧培訓中提到創建Springboot+JSP做一個web項目,而所需要依賴於war包運行。正巧也是符合我現在後端接口項目的運行方式,不想用jar!!!
2 配置方法
1、pom.xml修改
- 將所有私有<scope>provided</scope>註釋掉
- 修改<packaging>爲war <packaging>war</packaging>
- 引入tomcat-servlet-api包和spring-boot-starter-tomcat包 <!--Springboot打war包--> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <!-- <scope>provided</scope>--> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- <scope>provided</scope>--> </dependency>
2、在Application類中加入SpringApplicationBuilder方法,這裏我就直接上代碼
package com.shengda; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * .@MapperScan("com.shentong.*.mapper") 將項目中對應的mapper類的路徑加入項目,和mapper裏 的.java添加一個即可 * .@SpringBootApplication = (默認屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan * 1.@Configuration是搭配@Bean使用,兩者可以創建一個簡單的Spring配置類,可以用來代替相應的xml配置文件 * 2.@EnableAutoConfiguration 能夠自動配置spring的上下文,試圖猜測和配置你想要的bean類,通常會 自動根據你的類路徑和你的bean定義自動配置。 * 3.@ComponentScan:會自動掃描指定包下的全部標有@Component的類,並註冊成bean,當然包括@Component下的子註解@Service,@Repository,@Controller */ @SpringBootApplication public class TrafficlightMonitorApplication extends SpringBootServletInitializer { /** * .Description:打包成war * .Author:Carl * .@Date: 2018/9/18 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這裏要指向原先用main方法執行的Application啓動類 return builder.sources(TrafficlightMonitorApplication.class); } /** * .Description:啓動主函數 * .Author:QiongWu * .@Date: 2018/9/18 */ public static void main(String[] args) { SpringApplication.run(TrafficlightMonitorApplication.class, args); } }
我以自己理解的方式表述了方法,很好的解決了當初我搭建的jar包的springboot項目,每次要切換配置打成war的麻煩。