Один из выводов получился такой - Java не предназначена для ООП, её надо допиливать спрингоподобными фреймворками.
Нет?
Нет.
Если бы во времена зарождения Java были известны принципы SOLID, то что-то типа спринга было бы прямо в самой Java. И пока там этого нет, то для эффективной разработки, следующей современным принципам, желательно юзать стороннюю реализацию такой инфраструктуры. А чтобы не держать в штате инфраструктурщиков (спринг, например, пилят 100+ человек), то рекомендуется пользоваться уже готовым: спрингом, JavaEE, Guice или что там еще доступно из нестыдного.