spring实战(第四版)-第一章 Spring之旅

Spring可以做非常多的事情,但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。

为了降低Java开发的复杂性,Spring采取了以下4种关键策略:
1.基于POJO(Plain Old Java Object)的轻量级和最小侵入性编程
2.通过依赖注入和面向接口实现松耦合
3.基于切面和惯例进行声明式编程
4.通过切面和模板减少样板代码

*激发POJO的潜能
1.在基于Spring的构建的应用中,它的类通常没有任何痕迹表明你使用了Spring

*依赖注入(Dependency Injection,DI)
1.通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定。
2.创建应用组件之间协作的行为通常称为装配(wiring)
3.Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。

*应用切面
面向切面编程(aspect-oriented programming,AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。

*使用模板消除样板式代码
Spring旨在通过模板封装来消除样板式代码。

Spring容器
1.Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡。
2.Spring自带了多个容器实现,可以归为两种不同类型。bean工厂(由`org.springframework.beans.factory.eanFactory`接口定义)是最简单的容器,提供基本的DI支持。应用上下文(由`org.springframework.context.ApplicationContext`接口定义)基于BeanFactory构建,并提供应用框架级别的服务。

应用上下文
Spring自带了多种类型的应用上下文。下面罗列的几个是你最有可能遇到的:
1.AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文
2.AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文
3.ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
4.FileSystemXmlApplicationContext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
5.XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。

bean的生命周期
1.Spring对bean进行实例化
2.Spring将值和bean的引用注入到bean对应的属性中
3.如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法;
4.如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入;
5.如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()方法,将bean所在的应用上下文的引用传入进来;
6.如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessBeforeInitialization()方法;
7.如果bean实现了InitializingBean接口,Spring将调用它们的afterPropertiesSet()方法。类似的,如果bean使用init-method声明了初始化方法,该方法也会被调用。
8.如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessAfterInitialization()方法;
9.此时,bean已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文,直到该应用上下文被销毁;
10.如果bean实现了DisposableBean接口,Spring将调用它的destroy()接口方法。同样,如果bean使用destory-method声明了销毁方法,该方法也会被调用。

Spring框架由6个定义良好的模块分类组成

*Spring核心容器
1.容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建,配置和管理。
2.所有的Spring模块都构建于核心容器之上

*Spring的AOP模块
1.借助于AOP,可以将遍布系统的关注点(例如事务和安全)从它们所应用的对象中解耦出来。

*数据访问与集成
1.Spring的ORM模块建立在对DAO的支持之上,并为多个ORM框架提供了一种构建DAO的简便方式

*Web与远程调用
1.它的Web和远程调用模块自带了一个强大的MVC框架,有助于在Web层提升应用的松耦合水平。(SpringMVC)

*Instrumentation
1.Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能

*测试
1.Spring提供了测试模块以致力于Spring应用的测试。

Spring Portfolio
整个Spring Portfolio包括多个构建于核心Spring框架之上的框架和类库
*Spring Web Flow
Spring Web Flow建立于Spring MVC框架之上,它为基于流程的会话式Web应用(可以想一下购物车或者向导功能)提供了支持。

*Spring Web Service
Spring Web Service提供了契约优先的Web Service模型,服务的实现都是为了满足服务的契约而编写的。

*Spring Security
Spring AOP,Spring Security为Spring应用提供了声明式的安全机制

*Spring Integration
Spring Integration提供了多种通用应用集成模式的Spring声明式风格实现。

*Spring Batch
可以通过Spring Batch,使用Spring强大的面向POJO的编程模型

*Spring Data
1.Spring Data使得在Spring中使用任何数据库都变得非常容易。
2.Spring Data为持久化提供了一种简单的编程模型。这包括为多种数据库类型提供了一种自动化的Repository机制,它负责为你创建Repository的实现。

*Spring Social
Spring Social是Spring的一个社交网络扩展模块。

*Spring Mobile
Spring Mobile是Spring MVC新的扩展模块,用于支持移动Web应用开发。

*Spring for Android
旨在通过Spring框架为开发基于Android设备的本地应用提供某些简单的支持。

*Spring Boot
1.它以Spring的视角,致力于简化Spring本身
2.Spring Boot大量依赖于自动配置技术,它能够消除大部分(在很多场景,甚至是全部)Spring配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值