package com.moral; 
 | 
  
 | 
import com.moral.util.SpringContextUtils; 
 | 
import org.mybatis.spring.annotation.MapperScan; 
 | 
import org.springframework.boot.SpringApplication; 
 | 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
 | 
import org.springframework.boot.web.servlet.FilterRegistrationBean; 
 | 
import org.springframework.context.ApplicationContext; 
 | 
import org.springframework.context.annotation.Bean; 
 | 
import org.springframework.transaction.annotation.EnableTransactionManagement; 
 | 
import org.springframework.web.cors.CorsConfiguration; 
 | 
import org.springframework.web.cors.UrlBasedCorsConfigurationSource; 
 | 
import org.springframework.web.filter.CorsFilter; 
 | 
import java.util.Arrays; 
 | 
  
 | 
  
 | 
@MapperScan("com.moral.api.mapper") 
 | 
@SpringBootApplication 
 | 
@EnableTransactionManagement 
 | 
public class ScreenApiBootstrap { 
 | 
    public static void main(String[] args) { 
 | 
        ApplicationContext applicationContext = SpringApplication.run(ScreenApiBootstrap.class, args); 
 | 
        SpringContextUtils.setApplicationContext(applicationContext); 
 | 
    } 
 | 
    @Bean 
 | 
    public FilterRegistrationBean<CorsFilter> corsFilter() { 
 | 
        FilterRegistrationBean<CorsFilter> corsFilterFilterRegistrationBean = new FilterRegistrationBean<>(); 
 | 
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); 
 | 
        CorsConfiguration corsConfiguration = new CorsConfiguration(); 
 | 
        corsConfiguration.addAllowedHeader("*"); 
 | 
        corsConfiguration.addAllowedOrigin("*"); 
 | 
        corsConfiguration.setAllowedMethods(Arrays.asList("POST", "PUT", "GET", "OPTIONS", "DELETE")); 
 | 
        corsConfiguration.setAllowCredentials(true); 
 | 
        corsConfiguration.setMaxAge(3600L); 
 | 
        source.registerCorsConfiguration("/**", corsConfiguration); 
 | 
        corsFilterFilterRegistrationBean.setFilter(new CorsFilter(source)); 
 | 
        corsFilterFilterRegistrationBean.setOrder(-1); 
 | 
        return corsFilterFilterRegistrationBean; 
 | 
    } 
 | 
} 
 |