9

Java Simple Server для микросервисов?1

Серия Java Simple Server

Главное помни - эта либа не подойдёт для разработки сложной бизнес логики.
©Я

Возможно кому-то, кроме меня, пригодится такая реализация java сервера. Это opensource библиотека, распространяемая по лицензии Apache (возможно стоит сменить лицензию?), которая была создана в тот момент, когда стало понятно, что я раз за разом использую один и тот же код. Базируется эта либа на com.sun.net.httpserver и доступна в Maven Central.

Запустим сервер!

Довольно просто и быстро. Сервер запускается на указанном порту и создает thread executor с пулом потоков равным количеству потоков процессора. При запуске вешает родительский поток в ожидание на две секунды. В stdout плюнет вот такое:

Теперь можно проверить работает ли сервер. Делается предельно просто. Открыть браузер и стукнуть по адресу http://localhost:8080/alife. В ответ придет текст life. (Думаю всем понятно, что GET запрос можно не только браузером сделать).

Добавим endpoint!
Main.java

Hello.java

После запуска, в stdout плюнет

Это был пример создания конечной точки с методом GET. С методом POST создается схожим образом.
Для всего остального есть мастеркард HttpHandler. Почему так? Ну мне другое пока не особо нужно, вот и не добавил. По той же причине ответы принимают String (я в основном с json работаю).

Короче кому надо - юзайте на здоровье. Кто хочет помочь - прошу на GitHub проекта. Есть пожелания - пишите тут или в issue на гите.

P.S.
Попытка попасть на habr

Лига программистов

2.3K постов12K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

1. При чём тут микросервисы? Для микросервисов лучше сразу использовать Spring, т.к. в твоей либе нет базы для коммуникации микросервисов, а тащить в Spring экосистему огрызок, который не имеет стартера такое себе. Ведь самое сложное в микросервисах - создание архитектуры развёртывания и взаимодействия и к хеллоу ворлдам она отношения не имеет.

2. Зачем использовать этот многословный огрызок, в котором нет PUT, PATCH, DELETE, также часто используемые и который не умеет нативно работать с JSON и XML. Я понимаю что для всего перечисленного можно написать функционал самому, отдебажить его и поддерживать, но зачем, если всё есть в spring-boot-starter-web.


Разработка таких библиотек дело хорошее, развивает, позволяет детальнее разобраться в том как работают программы на более низком уровне, помогает понять как лучше писать код, но куда применить её я не знаю. Для хеллоу ворлда слишком тяжеловесная и многословная, не дружит со спрингом - нет стартера. Одни минусы.


Попробуй сделать из неё тот же spring-boot-starter-web в целях саморазвития, но без подсматривания.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Спасибо за комментарий и критику. Такое помогает понять, что нужно другим, а не мне лично)

1. Просто кликбейтный заголовок. Кстати судя по статистике в sonatype - человек 50 решили пощупать либу)
2. Я не заставляю. Пост был создан как раз для получения критики.

Добавление PUT, PATCH, DELETE есть в планах, а до тех пор подразумевается создание HttpHandler.

Писать еще один спринг не вижу смысла. Он уже есть)

Попробуй сделать из неё тот же spring-boot-starter-web в целях саморазвития, но без подсматривания.

starter можно реализовать двумя способами.
1. Явно вызвать метод библиотеки (то как оно есть).
2. Создать в библиотеке static блок в котором описать логику запуска. Все, что останется сделать пользователю - унаследовать свой класс от класса библиотеки (то, что я уже делаю).

А еще благодаря критике я уже выпустил версию 1.6 (отдельным постом расскажу, но на гите уже все есть).

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Делая свой спринг можно многому научиться, там есть очень сложные штуки, которые на ервый взгляж выглядят очень легко. Ну и костылей хватает)

Ручками писать не айс, хочется одну аннотацию бахнуть и чтобы приложуха запускалась, а потом какой-нибудь @RestController и @GetMapping и чтобы работало)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества