Spring Boot. С чего начать?
Я тоже попробую...
Spring Boot makes it effortless to create Spring-powered, production-ready services without a lot of code!
Философия спринга "мы сами знаем, что ты хочешь, и незаметно это сделаем. Только не спрашивай как." применённая к микросервисам. 20 аннотаций, 40 строчек кода и у тебя уже что-то как-то работает, регистрируется в каталоге, читает и пишет в БД. Если вопрос "как" не сильно интересен - отличное средство. Обожает сканиовать classpath и угадывать что разработчику надо, так что аккуратнее с зависимостями.
Код отвечающий на get, который скомпилируется в запускаемый jar, в котором уже интегрирован томкет или джетти (в зависимости не от конфигурации, нет, от classpath), только запускай:
@SpringBootApplication @RestController public class RestDummy { @GetMapping("/") @ResponseBody public String version() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(RestDummy.class, args); } }
Запускаем java -jar my-spring-boot.jar --server.port=12345 и вызываем http://localhost:12345/
Проблема как всегда в том, что даже туториалы не все работают так как описано. Разбираться в ошибках из-за конфигурации/аннотаций спринга, тяжело. Дебажить невозможно - слишком много генерируемого в рантайме кода. Хочешь чего-то нестандартного - страдай. Просто уменьшить время, после которого eureka выбросит неактивный сервис - танец с бубнами, и 15 рецептов, из которых половина работает с версией 1.5 другая с 2.0, а в текущей опять переименовали парочку пропертей, они же для внутреннего использования. В общем - спринг со всеми его преимуществами и недостатками.
Книги:
Spring Boot in Action
Spring Microservices in Action
Если надо лезть в облако или просто планируется запускать много микросервисов - Cloud Native Java