Требуется ли отдельный Spring Boot Starter для настройки CORS?

«Требуется ли отдельный Spring Boot Starter для настройки CORS?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, не требуется. Поддержка CORS (Cross-Origin Resource Sharing) встроена в стандартные веб-стартеры Spring Boot.

  • Для Spring MVC (spring-boot-starter-web):

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/api/**")
                    .allowedOrigins("https://trusted.com")
                    .allowedMethods("GET", "POST", "PUT");
        }
    }

    Или точечно с @CrossOrigin на контроллере/методе.

  • Для Spring WebFlux (spring-boot-starter-webflux):

    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("*");
        config.addAllowedMethod("*");
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return new CorsWebFilter(source);
    }

CORS — это функция веб-слоя, а не отдельная библиотека.