I would say Spring Boot. A full stack system with server side rendering and easy production deployment, at least IMO. It is a framework that support all you mentioned out of the box and them some. Start with (https://start.spring.io/) and look up an official documentation for your use case to get a feel of development process.
[Spring boot](https://spring.io/projects/spring-boot)