package com.rest.api; import com.rest.api.config.GracefulShutdown; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.client.RestTemplate; @SpringBootApplication public class SpringRestApiApplication { public static void main(String[] args) { SpringApplication.run(SpringRestApiApplication.class, args); } @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Bean public RestTemplate getRestTemplate() { return new RestTemplate(); } @Bean public GracefulShutdown gracefulShutdown() { return new GracefulShutdown(); } @Bean public ConfigurableServletWebServerFactory webServerFactory(final GracefulShutdown gracefulShutdown) { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addConnectorCustomizers(gracefulShutdown); return factory; } }