第一部分.Spring框架概述
Spring框架是一个轻量级,一站式构建企业级应用的框架,Spring是模块化的框架,允许你只使用Spring中你需要的模块,您可以使用Ioc容器在任何Web框架上,你也可以只使用Spring的Hibernate或者是JDBC模块。Spring框架支持声明式的事务管理,通过RMI或Web服务远程访问您的Service,它也提供了一个功能全面的MVC框架,你可以继承AOP切面到你对的系统中。
Spring对的设计是非侵入式的,这意味着你的逻辑代码可以不依赖于框架本身。虽然在数据访问层等依赖于数据访问技术Spring框架依然存在。然而,它应该很容易隔离这些依赖项。
本文档是Spring框架的参考指南功能。如果你在阅读这篇文档时有任何请求、评论或问题,请在Spring Framework提出,你也可以在StackOverflow中查看问题解决。
1. 开始使用Spring
这个参考指南提供了关于Spring框架的详细信息。它提供了Spring框架所有功能的文档,以及一些名词解释(如对底层概念,依赖注入等)。
如果你是刚刚开始学习Spring,你可能想要通过Spring框架创建一个简单的程序,您可以使用Spring Boot来快速创建一个基于Spring的程序,Spring Boot基于Spring框架,使用注解替换繁琐的配置,为了让你尽快启动并运行。
您可以使用 start.spring.io生成一个基本项目,您可以查看我们的入门指南中的相关动手教程,如建立一个基于RESTful Web服务,除了让您更快的了解Spring框架,这些教程都是比较常用的叫程程,当您阅读这些教程的时候,您也应该思索一些问题,比如如何将这个应用到您自己的项目当中去。
2.介绍Spring框架
Spring框架是一个Java平台,提供全面的基础设施支持开发Java应用程序,这样您就可以专注于写你自己项目的逻辑部分.
Spring使您能够从普通的plain old Java Objects(POJOs)转换到由Spring托管获取Pojos,这个功能适用于Java SE和部分Java ee
作为开发人员,您可以用Spring框架做如下:
- 在Java方法中执行数据库事务,而无需了解事务底层
- 使本地Java方法远程而无需处理远程过程
- 使用本地Java方法管理操作,而无需处理JMX api
- 使用本地Java方法处理消息,而无需管理JMS Api
2.1 依赖注入和控制反转
查阅Spring相关中文资料,英文原版中专业术语太多,不好翻译
A Java application — a loose term that runs the gamut from constrained, embedded applications to n-tier, server-side enterprise applications — typically consists of objects that collaborate to form the application proper. Thus the objects in an application have dependencies on each other.
Although the Java platform provides a wealth of application development functionality, it lacks the means to organize the basic building blocks into a coherent whole, leaving that task to architects and developers. Although you can use design patterns such as Factory, Abstract Factory, Builder, Decorator, and Service Locator to compose the various classes and object instances that make up an application, these patterns are simply that: best practices given a name, with a description of what the pattern does, where to apply it, the problems it addresses, and so forth. Patterns are formalized best practices that you must implement yourself in your application.
The Spring Framework Inversion of Control (IoC) component addresses this concern by providing a formalized means of composing disparate components into a fully working application ready for use. The Spring Framework codifies formalized design patterns as first-class objects that you can integrate into your own application(s). Numerous organizations and institutions use the Spring Framework in this manner to engineer robust, maintainable applications.
2.2 模块
Spring框架的功能模块分为大约20多个模块,这些模块分为:核心容器,数据访问/集成,网络,AOP, Instrumentation, Messaging, and Test,如下图所示
图2.1 Spring框架的概述
2.2.1 核心容器
Spring核心容器由:spring core
, spring bean
, spring-context
, spring-context-support
, spring-expression
组成
Spring core
和Spring bean
模块提供基本的部分框架,包括Ioc依赖注入特性,BeanFactory
是一个复杂的工厂模式实现。