============== Spring框架概述 ============== 1 什么是Spring框架 Spring是一个用于构建Java企业级应用的开源轻量级容器,是一个应用编程框架。 1.1 Spring是开源的 Spring的二进制文件和源代码可以免费获取并使用。 Spring遵循Apache 2许可协议。 Spring的源代码: https://github.com/spring-projects/spring-framework Spring的二进制包: https://mvnrepository.com/artifact/org.springframework Spring的文档: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle 提示:对任何Java项目,建议使用传递依赖管理系统,如Maven、Gradle、Ant/Ivy等。 1.2 Spring是轻量级的 基于Spring的应用不需要Java EE应用服务器,但可被部署其上。 Spring不具侵入性,即不需要扩展框架中的类,也不需要实现其中的接口,即可实现绝大部分功能。POJOs(实体类)的代码需要自己编写。 Spring的JAR包都比较小(<8M),管理成本低。 1.3 Spring是一个容器 Spring是一个依赖注入(DI)容器,其中的对象无需关心如何查找链接到其它对象。 Spring负责实例化其中的对象,将依赖注入到各个对象,并管理它们的生命周期。 2 Spring框架的目标 为开发企业级Java(TM)应用提供全面的基础支持: - Spring框架负责一切与对象有关的管理问题 - 应用开发者只需专注于解决业务领域的问题 Spring框架的设计原则: - DRY,避免重复的代码 - SoCs,关注点分离 /解耦对象与对象间的依赖 低耦合< \解耦上层逻辑和底层管理 3 Spring框架的背景 互联网的需求 - 1995:Java -> Applets - 1997:Servlets -> 高效的动态网页 - 1999:JSP -> 高效的动态网页变得更简单 企业级应用的需求 - 持久化 - 业务逻辑 - 事务 - 消息传递 - 安全 ... Java给出的答案——J2EE - EJB (Enterprise Java Beans) - 满足了企业级应用的大部分需求 EJB的问题 - 编码困难:必须扩展或实现特定的类或接口,编程模型复杂 - 难以执行单元测试 - 运行成本高:需要专门的应用服务器,资源密集 Spring框架解决了EJB的问题 - Rod Johnson发表了《J2EE Development without EJB》 - 2004:Spring框架1.0 - 支持依赖注入 - 鼓励使用POJOs - 通过XML文件描述应用程序的配置 - 作为EJB的替代品日渐流行 4 Spring框架的用途 Spring框架负责底层管理,程序员只关注上层业务。 Spring框架用于构建企业级应用并着力解决以下问题: - Web应用 - 消息传递 - 持久化 - 批处理与任务调度 - 继承与流 Spring不仅仅只是Java EE/EJB的可选替代品,已然成为当今Java应用开发的主流框架。 5 Spring框架的生态 Spring仍在不断创新: - 互联网:AJAX、WebSockets、REST、移动通信、Reactive - 数据访问:NoSQL、大数据、流处理 - 云:分布式、微服务 - 效率:Spring Boot、Spring Cloud Data Flow ... 更多关于Spring: http://spring.io/projects