(microservices) or full blown 2. Layout templating (simplicity of front end coding) 3. Able to initialize and bootstrap data in development mode 4. Code generation to hasten the development process and reduce the margin of error 5. Non-cryptic error messages 6. Supports auto-reloading to some extent 7. Ease of deployment 8. RESTful (architectural style)
configs, etc. Can be coded in Java or Groovy, depends on your liking full blown / micro web deploys as WAR, JAR or even Groovy script Any layout templating language you choose such as Thymeleaf, GSP or Groovy template engine
(to list down the spring components you can initialize with a new project) then: spring init --java=1.8 --dependencies=websocket,data-jpa --packaging=war <ProjectName> https://docs.spring.io/spring-boot/docs/current/reference/html/cli-using-the-cli. html