Нет тут ни обфускации, ни сокрытия кода. В явном виде стоит аннотация @SpringBootApplication и вызов метода run у SpringApplication.
А то что оно не просто печатает System.out.println("Hello world"); так это не проблема спринга
Пустой main не нужен и Spring'у.
Приложение на спринге или буте может быть и без контроллеров.
И да, для начала нужно учить что такое Spring и как его едят
Видимо проблема в понимании. Спринг - это базовая часть и основной функционал. Спринг бут - это фреймвор для построения независимых автоконфигураций на базе спринга. По своей сути, весь спринг бут - это технология автоконфигураций, исключений или включений бинов в зависимости от условий и т.д.
Не понимая базовую часть ты не сможешь нормально работать с бутом. Один хрен будет "магия".
Если кратко, то смотришь reference docs для обычного спринга. Смотришь что такое бины, какие бывают скоупы, как работает DI, как работают проперти. Это даёт понимание как работают базовые вещи.
Потом смотришь как работают автоконфигурации на примере какого-нибудь spring-boot-starter-jdbc. Это даёт понимание что большая часть магии - это просто написанный кем-то конфиг для наиболее частых кейсов.
После смотришь какие ещё автоконфиги для каких технологий есть. Отличный план, надежный, как швейцарские часы
А то что оно не просто печатает System.out.println("Hello world"); так это не проблема спринга
Приложение на спринге или буте может быть и без контроллеров.
И да, для начала нужно учить что такое Spring и как его едят
Не понимая базовую часть ты не сможешь нормально работать с бутом. Один хрен будет "магия".
Потом смотришь как работают автоконфигурации на примере какого-нибудь spring-boot-starter-jdbc. Это даёт понимание что большая часть магии - это просто написанный кем-то конфиг для наиболее частых кейсов.
После смотришь какие ещё автоконфиги для каких технологий есть. Отличный план, надежный, как швейцарские часы