1.spring的整体架构##
分层架构,20个模块
这些模块总结为一下部分
1)核心容器 Core Container
- Core
- Beans
- Context
- Expression Language
Core+Beans: 框架的基础部分,提供Ioc和依赖注入。重要概念:BeanFactory
Core:Spring框架基本核心工具类,是其他组件的基本核心。
Beans:所有应用都会用到,包含访问配置文件,创建和管理bean以及进行Ioc和DI操作相关的所有类
Context:构建于Core和Beans基础上,提供一种类似于JNDI注册器的框架式的对象访问方法。
ApplicationContext接口是Context模块的关键
Expression Language:提供强大的表达式语言用于在芸像是查询和操作对象。
2)Data Access/Integration
- JDBC——包含了Spring对JDBC数据访问进项封装的所有类
- ORM——对象-关系映射API,如JPA、JDO、Hibernate、iBatis等
- OXM——对Object/XML映射实现的抽象层
- JMS——主要包含一些制造和消费消息的特性
- Transaction——支持编程和声明性事务管理
3)Web
Web层包含了Web、Web-Servlet、Web-struts和Web-Porlet模块
Web模块
4)AOP
5)Test
支持使用JUnit和TestNG对Spring组件进行测试。
2.环境搭建 +源码下载##
这里需要安装GitHub和gradle,安装过程不再说明了,资料比较多,平时也一直在用的工具,直接下载源码到本地就OK了。
我的电脑是mac,所以直接brew update && brew install gradle 就把gradle安装好了。
源码地址:https://github.com/spring-projects/spring-framework.git
我选择的是3.2.x版本,开始吧。。。。
导入源码至intellij###
进入spring-framework目录,执行命令:
./gradlew cleanIdea: spring-oxm:compileTestJava
注意:如果你使用master分支,可能会出现以下错误:
Unrecognized VM option 'MaxMetaspaceSize=1024m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
这是因为”MaxMetaspaceSize=1024m” 这个参数配置只出现在jdk 8中,默认情况下是在master分支下,猜测是基于jdk 8开发。
所以解决方式有3种:
- 切换到其他分支,如3.2.X
- 安装jdk8
- 编辑gradlew,移去VM option MaxMetaspaceSize.
该过程需要科学上网才能成功....
file->new->project from existing sources->选择spring framework目录->gradle-next->finish...