技术栈
客户端技术栈
单页面应用:
- Angular or React
- 响应式页面设计: Twitter Bootstrap
- HTML5 Boilerplate
- 兼容 IE11 和更多主流浏览器 (Chrome, FireFox, Microsoft Edge…)
- 完整国际化支持
- 可选:Sass 支持 CSS 扩展
- 可选:使用 Spring Websocket 来支持 WebSocket 协议
开发流程:
- 使用 NPM 来安装额外的 JavaScript 库
- 使用 Webpack 编译、优化、热加载
- 使用 Jest, 以及 Protractor 进行测试
单页面应用还不能满足需要?
- 支持使用 Thymeleaf 模板引擎,来在服务端渲染页面
服务端技术栈
完整的 Spring 应用:
- 使用 Spring Boot 来简化应用配置
- 使用 Maven 或 Gradle 配置编译、测试、运行应用
- 使用 “development” 及 “production” profiles (同时支持 Maven 和 Gradle)
- 使用 Spring Security
- 使用 Spring MVC REST + Jackson
- 使用 Spring Websocket 支持 WebSocket 协议
- 使用 Spring Data JPA + Bean Validation
- 使用 Liquibase 管理数据库版本
- 使用 Elasticsearch 提供全文搜索引擎
- 使用 MongoDB 或 Couchbase 作为基于文档格式的 NoSQL 数据库而不是使用 JPA
- 使用 Cassandra 作为基于列对象的 NoSQL 数据库而不是使用 JPA
- 使用 Kafka 使用发布-分发消息系统
微服务技术栈
微服务是可选的,同时也是完全支持的:
- HTTP 路由:Netflix Zuul 或 Traefik
- 服务发现: Netflix Eureka 或 HashiCorp Consul
生产环境准备
- 监控:Metrics 及 the ELK Stack
- 缓存:ehcache (本地缓存), hazelcast 或 Infinispan
- 优化静态资源 (gzip 过滤, HTTP cache headers)
- 日志管理:Logback, 可运行时配置
- 连接池管理:HikariCP 来优化性能
- 编译为标准 WAR 包或可执行 JAR 包
- 完整的 Docker 及 Docker Compose 支持
- 支持主流云平台:AWS, Cloud Foundry, Heroku, Kubernetes, OpenShift, Azure, Docker…