Spring存在的意义:
为现代基于java的企业级应用提供一个全面的编程和配置模型。 spring的一个关键目标是提供应用程序级别的基础设施支持, 让开发者只需要关注业务逻辑, 不需要绑定在具体的部署环境上。
特性:
- 核心技术:依赖注入, 事件, 资源, i18n, 校检, 数据绑定,类型转换,spel, aop
- 测试: mock对象, TestContext框架,mvc测试, webtestclient
- 数据访问: 事务, DAO支持, JDBC, ORM, Marshalling XML
- 集成: 远程调用, JMS, JCA, JMX, email, tasks, scheduling, cache.
- 语言: Kotlin, Groovy, 动态语言。
Spring框架的历史
很多人认为Spring和javaEE是相互对立的, 但实际上, 它是javaEE的一个补充。 集成了下列的javaEE规范:
- Servlet API (JSR 340)
- WebSocket API (JSR 356)
- Concurrency Utilities (JSR 236)
- JSON Binding API (JSR 367)
- Bean Validation (JSR 303)
- JPA (JSR 338)
- JMS (JSR 914)
- JTA/JCA.
Spring 框架也支持javaEE的依赖注入标准(JSR330)和通用注解标准(JSR250)
设计哲学
- 在各个层次上提供选择
- 拥抱不同的观点
- 保持强大的向后兼容能力
- 谨慎的api设计
- 高质量标准的代码