Какие серверы приложений (application servers) вы использовали?

«Какие серверы приложений (application servers) вы использовали?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Работал с различными серверами, выбор зависел от стека технологий и требований проекта:

  • Apache Tomcat / Jetty: Легковесные сервлет-контейнеры. Чаще всего использовал Tomcat для Java веб-приложений из-за простоты, стабильности и широкой распространенности.
  • WildFly (JBoss) / GlassFish: Полноценные Java EE (Jakarta EE) серверы приложений со встроенными сервисами (JMS, EJB).
  • Oracle WebLogic / IBM WebSphere: Мощные коммерческие серверы для критичных enterprise-приложений.
  • Встраиваемые серверы (Undertow, Netty): Для микросервисных архитектур на Spring Boot, где сервер является частью приложения.

Пример Spring Boot приложения со встроенным Tomcat:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args); // Сервер запускается автоматически
    }
}

Для использования достаточно зависимости spring-boot-starter-web. Кастомная настройка сервера возможна через бины, например, TomcatServletWebServerFactory.