springboot 项目,若打成 war 包,使用外置的 tomcat 启动
- 需要继承
**org.springframework.boot.context.web.SpringBootServletInitializer**类 - 然后重写
**configure(SpringApplicationBuilder application)**方法
import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.Bean;import org.springframework.core.annotation.Order;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfigurationSource;import org.springframework.web.filter.CorsFilter;import com.upincar.dms.filter.CharacterEncodingFilter;/**** @Description:启动类*/@SpringBootApplication@EnableAsync@MapperScan(basePackages = "com.upincar.dms.user.dao", sqlSessionFactoryRef = "sqlSessionFactory")public class DmsApplication extends SpringBootServletInitializer {public static void main(String[] args) {try{SpringApplication.run(DmsApplication.class, args);} catch (Exception e) {e.printStackTrace();}}/*** 如此配置打包后可以war包才可在tomcat下使用* @param application* @return*/@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(DmsApplication.class);}/*** 设置全局UTF-8编码过滤器* @return*/@Bean@Order(Integer.MAX_VALUE)//设置执行先后顺序public FilterRegistrationBean<CharacterEncodingFilter> characterFilterRegistration() {FilterRegistrationBean<CharacterEncodingFilter> registration = new FilterRegistrationBean<CharacterEncodingFilter>();registration.setFilter(new CharacterEncodingFilter());registration.addUrlPatterns("/*");registration.addInitParameter("paramName", "paramValue");registration.setName("characterEncodingFilter");return registration;}/*** 跨域过滤器** @return*/@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", buildConfig());return new CorsFilter(source);}private CorsConfiguration buildConfig() {CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedOrigin("*");corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.setMaxAge(3600L);corsConfiguration.addExposedHeader("x-requested-with");return corsConfiguration;}}
