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<CharacterEncodingFilter> characterFilterRegistration() {
	  FilterRegistrationBean<CharacterEncodingFilter> registration = new FilterRegistrationBean<CharacterEncodingFilter>();
	  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;
    }    

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值