SpringBoot war exploded 发布到tomcat 时使用SpringApplicationBuilder
SpringApplicationBuilder作用,以及设置跨域请求过滤器
springboot项目,若打包成war包,使用外置的tomcat启动
1、需要继承 org.springframework.boot.context.web.SpringBootServletInitializer类
2、然后重写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
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DmsApplication.class);
}
/**
-
设置全局UTF-8编码过滤器
-
@return
*/
@Bean
@Order(Integer.MAX_VALUE)//设置执行先后顺序
public FilterRegistrationBean characterFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new CharacterEncodingFilter());
registration.addUrlPatterns("/*");
registration.addInitParameter(“paramName”, “paramValue”);
registration.setName(“characterEncodingFilter”);
return registration;
}
/**
-
跨域过滤器
-
@return
*/
@Bean
public 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;
}
}
链接: 转载,原文地址连接 https://blog.csdn.net/qq_42714869/article/details/93052175.