Автор оригинала: Eugen Paraschiv.
1. Обзор
Spring Boot может многое сделать; в этом уроке мы рассмотрим несколько наиболее интересных вариантов конфигурации в Boot.
Дальнейшее чтение:
Миграция с весны на весеннюю загрузку
Создание пользовательского стартера с помощью Spring Boot
Тестирование в Spring Boot
2. Номер Порта
В основных автономных приложениях основной HTTP-порт по умолчанию равен 8080; мы можем легко настроить загрузку для использования другого порта :
server.port=8083
И для конфигурации на основе YAML:
server: port: 8083
Мы также можем программно настроить порт сервера:
@Component public class CustomizationBean implements WebServerFactoryCustomizer{ @Override public void customize(ConfigurableServletWebServerFactory container) { container.setPort(8083); } }
3. Контекстный путь
По умолчанию контекстный путь равен “/”. Если это не идеально , и вам нужно изменить его – на что-то вроде/ app_name , вот быстрый и простой способ сделать это с помощью свойств:
server.servlet.contextPath=/springbootapp
И для конфигурации на основе YAML:
server: servlet: contextPath:/springbootapp
Наконец, изменение также может быть выполнено программно:
@Component public class CustomizationBean implements WebServerFactoryCustomizer{ @Override public void customize(ConfigurableServletWebServerFactorycontainer) { container.setContextPath("/springbootapp"); } }
4. Страница Ошибки Белой Метки
Spring Boot автоматически регистрирует BasicErrorController
bean, если в конфигурации не указана какая-либо пользовательская реализация.
Однако этот контроллер по умолчанию, конечно, можно настроить:
public class MyCustomErrorController implements ErrorController { private static final String PATH = "/error"; @GetMapping(value=PATH) public String error() { return "Error haven"; } @Override public String getErrorPath() { return PATH; } }
5. Настройте сообщения об ошибках
По умолчанию Boot предоставляет /error сопоставления для разумной обработки ошибок.
Если вы хотите настроить более конкретные страницы ошибок, существует хорошая поддержка единого Java DSL для настройки обработки ошибок:
@Component public class CustomizationBean implements WebServerFactoryCustomizer{ @Override public void customize(ConfigurableServletWebServerFactorycontainer) { container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/400")); container.addErrorPages(new ErrorPage("/errorHaven")); } }
Здесь мы специально обработали Плохой запрос , чтобы соответствовать /400 путь и все остальные, чтобы соответствовать общему пути.
И очень простая /ошибка/| реализация:
@GetMapping("/errorHaven") String errorHeaven() { return "You have reached the haven of errors!!!"; }
Выход:
You have reached the haven of errors!!!
6. Завершите работу загрузочного приложения программно
Вы можете программно закрыть загрузочное приложение с помощью приложения Spring. У этого есть статический метод exit () , который принимает два аргумента: ApplicationContext и Генератор кода выхода :
@Autowired public void shutDown(ExecutorServiceExitCodeGenerator exitCodeGenerator) { SpringApplication.exit(applicationContext, exitCodeGenerator); }
Именно с помощью этого метода утилиты мы можем закрыть приложение.
7. Настройте уровни ведения журнала
Вы можете легко настроить уровни ведения журнала в загрузочном приложении ; Начиная с версии 1.2.0 и далее, вы можете настроить уровень ведения журнала в главном файле свойств:
logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: ERROR
И точно так же, как со стандартным приложением Spring, вы можете активировать различные системы ведения журнала , такие как Logback , log4j , log4j2 и т. Д., Добавив их настроенный XML – файл или файл свойств в путь к классам и определив библиотеки в pom.
8. Зарегистрируйте новый сервлет
Если вы развертываете приложение с помощью встроенного сервера, вы можете зарегистрировать новые сервлеты в загрузочном приложении , предоставив их в качестве компонентов из обычной конфигурации:
@Bean public HelloWorldServlet helloWorld() { return new HelloWorldServlet(); }
В качестве альтернативы вы можете использовать ServletRegistrationBean :
@Bean public SpringHelloServletRegistrationBean servletRegistrationBean() { SpringHelloServletRegistrationBean bean = new SpringHelloServletRegistrationBean( new SpringHelloWorldServlet(), "/springHelloWorld/*"); bean.setLoadOnStartup(1); bean.addInitParameter("message", "SpringHelloWorldServlet special message"); return bean; }
9. Настройте причал или Подводное течение в загрузочном приложении
Стартеры весенней загрузки обычно используют Tomcat в качестве встроенного сервера по умолчанию . Если это необходимо изменить – вы можете исключить зависимость Tomcat и вместо этого включить причал или подводное течение:
Настройка причала
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty
@Bean public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory() { JettyEmbeddedServletContainerFactory jettyContainer = new JettyEmbeddedServletContainerFactory(); jettyContainer.setPort(9000); jettyContainer.setContextPath("/springbootapp"); return jettyContainer; }
Настройка подводного течения
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow
@Bean public UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory() { UndertowEmbeddedServletContainerFactory factory = new UndertowEmbeddedServletContainerFactory(); factory.addBuilderCustomizers(new UndertowBuilderCustomizer() { @Override public void customize(io.undertow.Undertow.Builder builder) { builder.addHttpListener(8080, "0.0.0.0"); } }); return factory; }
10. Заключение
В этой краткой статье мы рассмотрели некоторые из наиболее интересных и полезных параметров конфигурации Spring Boot .
Конечно, в справочных документах есть еще много вариантов настройки и настройки загрузочного приложения в соответствии с вашими потребностями – это лишь некоторые из наиболее полезных, которые я нашел.