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

Ответ

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

  • 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.

Ответ 18+ 🔞

Слушай, вот сидишь ты такой, пишешь на Java, и тут тебе надо приложение запустить. А куда его, блядь, запускать-то? В воздух, что ли? Нужен сервер, ёпта! И тут начинается эта пиздопроебибна с выбором.

Ну, смотри. Если у тебя простое веб-приложение, без всяких этих наворотов, то Apache Tomcat — твой выбор. Старый, добрый, как кирзовый сапог. Простой, стабильный, нихуя лишнего. Его, сука, везде используют, и он просто работает. Jetty — тоже легковесный, но его больше в embedded-режиме пихают.

А вот если ты пишешь какую-то овердохуищную enterprise-хуйню, с транзакциями, очередями и прочими EJB, то тут уже нужны монстры. WildFly (он же JBoss) или GlassFish. Это уже не просто контейнер, а целая вселенная со своими службами. Всё в одном флаконе, блядь, только настрой.

Ну а если ты работаешь в банке или ещё где, где бюджеты космические, а требования — пиздец какие строгие, то тебе светят Oracle WebLogic или IBM WebSphere. Это коммерческие звери, мощные, но и геморроя с ними — выше крыши. Зато поддержка, документация и всё такое.

Но, бля, времена меняются! Сейчас все помешались на микросервисах и Spring Boot. И тут, сука, всё проще. Сервер встраивается прямо в приложение, как глист в кишку! Undertow или Netty — лёгкие, быстрые, идеально для этого подходят.

Вот смотри, как это выглядит на Spring Boot. Просто пиздец как просто:

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

Вот и вся магия, ёбушки-воробушки! Добавил зависимость spring-boot-starter-web — и у тебя уже Tomcat внутри сидит, готовый к бою. А если захотел его по-своему настроить — пожалуйста, создавай бин TomcatServletWebServerFactory и верти им, как хочешь. Красота же!