springboot 项目,若打成 war 包,使用外置的 tomcat 启动

    1. 需要继承 **org.springframework.boot.context.web.SpringBootServletInitializer**
    2. 然后重写 **configure(SpringApplicationBuilder application)** 方法


    1. import org.mybatis.spring.annotation.MapperScan;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. import org.springframework.boot.builder.SpringApplicationBuilder;
    5. import org.springframework.boot.web.servlet.FilterRegistrationBean;
    6. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
    7. import org.springframework.cache.annotation.EnableCaching;
    8. import org.springframework.context.annotation.Bean;
    9. import org.springframework.core.annotation.Order;
    10. import org.springframework.scheduling.annotation.EnableAsync;
    11. import org.springframework.web.cors.CorsConfiguration;
    12. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
    13. import org.springframework.web.filter.CorsFilter;
    14. import com.upincar.dms.filter.CharacterEncodingFilter;
    15. /**
    16. *
    17. * @Description:启动类
    18. */
    19. @SpringBootApplication
    20. @EnableAsync
    21. @MapperScan(basePackages = "com.upincar.dms.user.dao", sqlSessionFactoryRef = "sqlSessionFactory")
    22. public class DmsApplication extends SpringBootServletInitializer {
    23. public static void main(String[] args) {
    24. try{
    25. SpringApplication.run(DmsApplication.class, args);
    26. } catch (Exception e) {
    27. e.printStackTrace();
    28. }
    29. }
    30. /**
    31. * 如此配置打包后可以war包才可在tomcat下使用
    32. * @param application
    33. * @return
    34. */
    35. @Override
    36. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    37. return application.sources(DmsApplication.class);
    38. }
    39. /**
    40. * 设置全局UTF-8编码过滤器
    41. * @return
    42. */
    43. @Bean
    44. @Order(Integer.MAX_VALUE)//设置执行先后顺序
    45. public FilterRegistrationBean<CharacterEncodingFilter> characterFilterRegistration() {
    46. FilterRegistrationBean<CharacterEncodingFilter> registration = new FilterRegistrationBean<CharacterEncodingFilter>();
    47. registration.setFilter(new CharacterEncodingFilter());
    48. registration.addUrlPatterns("/*");
    49. registration.addInitParameter("paramName", "paramValue");
    50. registration.setName("characterEncodingFilter");
    51. return registration;
    52. }
    53. /**
    54. * 跨域过滤器
    55. *
    56. * @return
    57. */
    58. @Bean
    59. public CorsFilter corsFilter() {
    60. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    61. source.registerCorsConfiguration("/**", buildConfig());
    62. return new CorsFilter(source);
    63. }
    64. private CorsConfiguration buildConfig() {
    65. CorsConfiguration corsConfiguration = new CorsConfiguration();
    66. corsConfiguration.addAllowedOrigin("*");
    67. corsConfiguration.addAllowedHeader("*");
    68. corsConfiguration.addAllowedMethod("*");
    69. corsConfiguration.setMaxAge(3600L);
    70. corsConfiguration.addExposedHeader("x-requested-with");
    71. return corsConfiguration;
    72. }
    73. }