package com.example;
import org.apache.coyote.http11.AbstractHttp11Protocol;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.vaadin.spring.EnableVaadin;
import org.vaadin.spring.boot.EnableVaadinServlet;
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableVaadin
@EnableVaadinServlet
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
EmbeddedServletContainerCustomizer servletContainerCustomizer() {
return servletContainer -> ((TomcatEmbeddedServletContainerFactory) servletContainer)
.addConnectorCustomizers(connector -> {
AbstractHttp11Protocol<?> httpProtocol = (AbstractHttp11Protocol<?>) connector.getProtocolHandler();
httpProtocol.setCompression("on");
httpProtocol.setCompressionMinSize(256);
String mimeTypes = httpProtocol.getCompressableMimeTypes();
String mimeTypesWithJson = mimeTypes + "," + MediaType.APPLICATION_JSON_VALUE + ",application/javascript";
httpProtocol.setCompressableMimeTypes(mimeTypesWithJson);
});
}
}