Есть ли способ выбрать тип встроенного сервера с помощью Spring boot 1.x

Я использую весеннюю загрузку 1.5.15.RELEASE.

В моем pom.xml есть:

 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

Что, как я понимаю, по умолчанию отдает предпочтение встроенному серверу tomcat (которым я доволен). На самом деле это похоже на тот случай, когда я запускаю приложение в "производственном режиме", я вижу:

Tomcat initialized with port(s): 8080

Однако при выполнении таких тестов:

@RunWith(SpringRunner.class)
@SpringBootTest(properties = "spring.profiles.active=test", webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EmbeddedTomcatServerTest {
...test methods
}

Понимаю:

Jetty started on port(s) 63742 (http/1.1)

Быстрый mvn dependency:tree показывает:

[INFO] +- com.github.tomakehurst:wiremock:jar:2.18.0:test [INFO] | +- org.eclipse.jetty:jetty-server:jar:9.4.11.v20180605:test

Я использую wiremock в тестах, я предполагаю, что его присутствие на пути к тестовым классам заставляет автоматическую конфигурацию весенней загрузки в тестах отдавать предпочтение Jetty вместо Tomcat, а отсутствие зависимости wiremock от пути к классам во время выполнения возвращается к Tomcat.

Я бы хотел, чтобы и мои тесты, и производственный код использовали tomcat - есть ли способ попросить Spring отдать предпочтение Tomcat, даже если Jetty находится в пути к классам.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предоставьте свой собственный bean-компонент EmbeddedServletContainerFactory. Например, чтобы всегда использовать Tomcat, используйте следующую конфигурацию bean-компонента:

@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
    return new TomcatEmbeddedServletContainerFactory();
}

Другие вопросы по теме