第一章 《spring之旅》
1、Spring究竟是什么?
Spring本身就是一个容器,你应用里面的对象都由Spring来管理。我们下载的Spring框架只是常用的是Spring的核心框架而已,而不是Spring里面的全部的内容。
而Spring包括了很多基于核心框架的框架和一些类库。
2、Spring出现的目的:
简化java开发,增强了POJO的功能。
3、Spring为达到目的,采取了哪些策略?
4个关键策略:
(1)基于POJO的轻量级和最小侵入式编程。
(2)通过AOP和DI实现松耦合。
(3)基于切面和惯例进行声明式编程。
(4)通过切面和模版减少了模版式编程。
4、我们下载的Spring模块都包括了哪些内容?
我下载的是spring release4.3.8版本,并查看libs文件夹,里面共计60个jar文件。
这60个文件属于20个不同的模块.每个模块有3个jar文件(包括:javadoc的jar文件,源码的jar文件,二进制类库)。
这20个模块按照功能划分,可以分为6个功能模块:
(1)Spring核心容器:这是Spring框架最核心的部分,它管理了Spring应用中bean的创建、配置、管理。
包括的jar文件:beans,core, context, expression, context-support
(2)Spring的AOP模块:这是Spring应用中开发切面的基础。
包括的jar文件:aop, aspects
(3)数据访问与集成:提供了多种和数据库进行交互的方式,比如自带的JDBC,集成的包括ORM方式等
包括的jar文件:jdbc, orm, transaction, jms, messaging, oxm
(4)web与远程调用:自带的mvc框架有助于在web层提升应用的松耦合水平;
远程调用可以实现与其它应用的交互。远程调用的功能spring既自己实现了一个框架,也集成了一些其它的框架。
包括的jar文件:web ,webmvc, webmvc-portlet, websocket
(5)Instrumentation:此模块提供了为JVM添加代理的功能。具体就是:为tomcat提供了一个织入代理,能够为tomcat传递类文件,就像这些文件是被类加载器加载进去的。
包括的jar文件:instrument, instrucment-tomcat
(6)测试:对单元测试提供了一系列的mock实现;
对于集成测试,该模块为加载spring应用上下文中的bean集合以及spring上下文中的bean进行交互提供了支持。
5、Spring新特性:
这里只写几个对于我来说不够特别熟悉的地方。
(1)spring3.1添加了@profile注解,从而解决各种环境下(如开发、测试、生产)选择不同配置的问题。这样bean的创建就能根据当前选择了什么环境,从而决定要不要被创建。
(2)spring3.0添加了许多enable功能,通过这个注解可以启用很多spring特定的功能。
(3)spring3.1添加了对声明式缓存的支持。
(4)spring4.0添加了对websocket编程的支持。
(5)spring4.0是第一批支持java8特性的java框架
(6)spring4.0添加了条件化创建bean的功能。
1、Spring究竟是什么?
Spring本身就是一个容器,你应用里面的对象都由Spring来管理。我们下载的Spring框架只是常用的是Spring的核心框架而已,而不是Spring里面的全部的内容。
而Spring包括了很多基于核心框架的框架和一些类库。
2、Spring出现的目的:
简化java开发,增强了POJO的功能。
3、Spring为达到目的,采取了哪些策略?
4个关键策略:
(1)基于POJO的轻量级和最小侵入式编程。
(2)通过AOP和DI实现松耦合。
(3)基于切面和惯例进行声明式编程。
(4)通过切面和模版减少了模版式编程。
4、我们下载的Spring模块都包括了哪些内容?
我下载的是spring release4.3.8版本,并查看libs文件夹,里面共计60个jar文件。
这60个文件属于20个不同的模块.每个模块有3个jar文件(包括:javadoc的jar文件,源码的jar文件,二进制类库)。
这20个模块按照功能划分,可以分为6个功能模块:
(1)Spring核心容器:这是Spring框架最核心的部分,它管理了Spring应用中bean的创建、配置、管理。
包括的jar文件:beans,core, context, expression, context-support
(2)Spring的AOP模块:这是Spring应用中开发切面的基础。
包括的jar文件:aop, aspects
(3)数据访问与集成:提供了多种和数据库进行交互的方式,比如自带的JDBC,集成的包括ORM方式等
包括的jar文件:jdbc, orm, transaction, jms, messaging, oxm
(4)web与远程调用:自带的mvc框架有助于在web层提升应用的松耦合水平;
远程调用可以实现与其它应用的交互。远程调用的功能spring既自己实现了一个框架,也集成了一些其它的框架。
包括的jar文件:web ,webmvc, webmvc-portlet, websocket
(5)Instrumentation:此模块提供了为JVM添加代理的功能。具体就是:为tomcat提供了一个织入代理,能够为tomcat传递类文件,就像这些文件是被类加载器加载进去的。
包括的jar文件:instrument, instrucment-tomcat
(6)测试:对单元测试提供了一系列的mock实现;
对于集成测试,该模块为加载spring应用上下文中的bean集合以及spring上下文中的bean进行交互提供了支持。
5、Spring新特性:
这里只写几个对于我来说不够特别熟悉的地方。
(1)spring3.1添加了@profile注解,从而解决各种环境下(如开发、测试、生产)选择不同配置的问题。这样bean的创建就能根据当前选择了什么环境,从而决定要不要被创建。
(2)spring3.0添加了许多enable功能,通过这个注解可以启用很多spring特定的功能。
(3)spring3.1添加了对声明式缓存的支持。
(4)spring4.0添加了对websocket编程的支持。
(5)spring4.0是第一批支持java8特性的java框架
(6)spring4.0添加了条件化创建bean的功能。