Technology stack
Technology stack on the client side
Single Web page application:
- AngularJS v1.x or Angular v2+
- Responsive Web Design with Twitter Bootstrap
- HTML5 Boilerplate
- Compatible with IE11 and modern browsers
- Full internationalization support
- Optional Sass support for CSS design
- Optional WebSocket support with Spring Websocket
With the great Yeoman development workflow:
- Easy installation of new JavaScript libraries with Bower or Yarn
- Build, optimization and live reload with Gulp.js or Webpack
- Testing with Karma, PhantomJS and Protractor
And what if a single Web page application isn’t enough for your needs?
- Support for the Thymeleaf template engine, to generate Web pages on the server side
Technology stack on the server side
A complete Spring application:
- Spring Boot for easy application configuration
- Maven or Gradle configuration for building, testing and running the application
- “development” and “production” profiles (both for Maven and Gradle)
- Spring Security
- Spring MVC REST + Jackson
- Optional WebSocket support with Spring Websocket
- Spring Data JPA + Bean Validation
- Database updates with Liquibase
- Elasticsearch support if you want to have search capabilities on top of your database
- MongoDB support if you’d rather use a document-oriented NoSQL database instead of JPA
- Cassandra support if you’d rather use a column-oriented NoSQL database instead of JPA
- Kafka support if you want to use a publish-subscribe messaging system
Ready to go into production:
- Monitoring with Metrics
- Caching with ehcache (local cache) or hazelcast (distributed cache)
- Optional HTTP session clustering with hazelcast
- Optimized static resources (gzip filter, HTTP cache headers)
- Log management with Logback, configurable at runtime
- Connection pooling with HikariCP for optimum performance
- Builds a standard WAR file or an executable JAR file
- Support for all major cloud providers: AWS, CloudFoundry, Heroku, Kubernetes, Docker…