Sou novo por aqui, e novo no mundo java, então se minha pergunta soar infantil já peço desculpas.
Pois bem,
No desenvolvimento de sistemas atual virou moda desenvolver o front-end separado do back-end usando o angular, minha pergunta é, onde vai parar o spring framework com isso, se eu quiser eu posso fazer tudo com uma api RESTFul e deixa-lo de lado? e o hibernate, tem como fazer uma implementação que o utilize e qual seria o beneficio em relação a um RESTFul simples que já vem com o netbeans?
caso conheçam algum livro que siga essa linha eu tambem agradeço a recomendação,
Se for um backend orientado a serviço não tem pq usar soluções monolíticas como spring e hibernate. Na verdade, não tem nem pq usar Java. Pode ser Node.js, go, [insira sua linguagem preferida aqui]. Para o frontend não importa qual linguagem usada pra implementar o backend.
Isso é verdade, são pesos desnecessários. Só dei o exemplo da Spring pra ele por ele ter falado, e por Spring ser a sobrevida para Java web contra o stack padrao do Java que sempre foi ruim e acordou tarde. Mas se ele tiver numa situação independente, Go por exemplo é uma das melhores soluções.
Minha opiniao: Microservices não é bala de prata, tem que usar quando for necessário. Nem sempre um monolito é desvantajoso, frente aos microservicos.E Java não é tão pesado assim tb, pra excluir assim sem saber os requisitos, e nem tão complicado de startar um projeto, principalmente se usar o Spring Boot.
Respondendo ao topico:
No backend, vc vai usar o Spring REST pra fazer os servicos REST e pode usar o que quiser abaixo disso. Hibernate é apenas um framework de persistencia de dados, nao interefere nada nos seus servicos rest, apenas o complementa, caso necessário.
Tendo o backend pronto, disponibilizados servicos REST (HTTP), sua aplicação Angular (ou qualquer outra) pode consumir esses servicos para criar/atualizar/remover ou consumir dados do seu backend.
Concordo. Mas uma arquitetura orientada a serviços é uma ótima maneira de terminar com o front-end desacoplado, além claro de estar na moda, que é o mais importante.
Depende do que você precisa atender, do teu cenário real ou objetivos. Considerando o que o colega postou sobre RESTful de forma descompromissada, Go é mais leve, compila direto pra executável nativo, não tem frescura de extrema OOP no back-end que a maioria do pessoal de Java e .NET seguem, mas seguindo o simples estruturado e com mais eficiência em programação concorrente. E as desvantagens é que ainda é pouco usado, Java e .NET tem um mar de soluções prontas. E claro, se teu objetivo for o grande mercado, por um bom tempo não tem como fugir de Java, .NET, PHP, C++, ABAP, Delphi, etc, onde a melhor linguagem vai ser a que pagar melhor teu salário, te levando as melhores oportunidades.