Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Spring1:Spring简介、环境搭建、源码下载及导⼊MyEclipse 框架学习前⾔
这个模块是⾯向Spring的,Spring的学习我是这么想的:
1、简单介绍Spring,主要是从⽹上借鉴⼀些重点
2、尽量说明清楚Spring的使⽤⽅法以及细节点
3、尽量以⾃⼰的理解讲清楚Spring中的⼀些源代码
Spring是什么
Spring是⼀款为了解决企业应⽤开发的复杂性⽽创建的轻量级Java框架。
框架的主要优势之⼀就是其分层架构,分层架构允许使⽤者选择哪⼀个组件,同时为J2EE应⽤程序开发提供集成的框架。
从简单性、可测试性和松耦合的⾓度⽽⾔,任何Java应⽤都可以从Spring中受益,Spring的核⼼是控制反转IOC和⾯向切⾯AOP。
Spring的特征
1、轻量
从⼤⼩与开销两⽅⾯⽽⾔Spring都是轻量的。
完整的Spring框架可以在⼀个⼤⼩只有1M多的JAR⽂件⾥发布,并且Spring所需的处理开销也是微不⾜道的。
此外,Spring是⾮侵⼊式的:典型的,Spring应⽤中的对象不依赖于Spring的特定类。
2、控制反转
Spring通过⼀种称作控制反转IOC的技术促进了低耦合。
当应⽤了IOC,⼀个对象依赖的其他对象会通过被动的⽅式传递进来,⽽不是这个对象⾃⼰创建或者查找依赖对象。
3、⾯向切⾯
Spring提供了⾯向切⾯编程的丰富⽀持,允许通过分离应⽤的业务逻辑与系统级服务进⾏内聚性的开发。
应⽤程序只实现它们应该做的----完成业务逻辑,仅此⽽已,它们并不负责(甚⾄意识不到)其它的系统级关注点,例如⽇志或事物⽀持。
4、容器
Spring包含并管理应⽤对象的配置和⽣命周期,在这个意义上它是⼀种容器,你可以配置你的每个bean如何被创建----基于⼀个可配置原型,你的bean可以创建⼀个单独的实例或者每次需要时都⽣成⼀个新的实例----以及它们是如何相互关联的。
5、框架
Spring可以将简单的组件配置、组合成为复杂的应⽤。
在Spring中,应⽤对象被声明式地组合,典型的是在⼀个XML⽂件⾥。
Spring也提供了很多基础功能(事务管理、持久化框架集成等),将应⽤逻辑的开发留给开发者。
所有Spring的这些特征使得开发者能够编写更⼲净、更可管理、更易于测试的代码,它们也为Spring中的各种模块提供了基础⽀持。
Spring的特点
1、⽅便解耦,简化开发
通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进⾏控制,避免硬编码所造成的过度耦合。
有了Spring,⽤户不必再为单实例模式类、属性⽂件解析等这些很底层的需求编写代码,可以更专注于上层的应⽤。
2、AOP编程的⽀持
通过Spring提供的AOP功能,⽅便进⾏⾯向切⾯的编程,许多不容易⽤传统OOP实现的功能可以通过AOP轻松应付。
3、声明式事物的⽀持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式灵活地进⾏事物的管理,提⾼开发效率和质量。
4、⽅便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使⽤难度,Spring提供了对各种优秀框架如Structs、Hibernate、Hessian、Quartz等的直接⽀持。
5、降低Java EE API的使⽤难度
Spring对很多难⽤的Java EE API(如JDBC、JavaMail、RMI等)提供了⼀个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使⽤难度⼤为降低
6、Java源码是经典学习范例
Spring的源码设计精妙、结构清晰、独具匠⼼,处处体现着对Java设计模式灵活运⽤以及对Java技术的⾼深造诣。
Spring框架源码⽆疑是Java技术的最佳实践范例,如果想在短时间内迅速提⾼⾃⼰的Java技术⽔平和应⽤开发⽔平,学习和研究Spring的源码将使你获益匪浅。
Spring下载
Spring相关信息可以去查看,不过都是全英⽂版本的。
Spring⽬前的最新版本是4.2.2,下载,解压后应该是这样的:
介绍⼀下每个⽂件夹:
1、docs下是Spring相关资料,包括⼀个官⽅的英⽂版的资料《spring-framework-reference.pdf》以及⽹页版本的Spring API,上⾯有所有的Spring类与⽅法相关信息,就和JDK API⼀样
2、libs下包括了Spring所有jar包,注意⼀下"*.javadoc.jar"和"*.sources.jar"结尾的都是每个模块Spring提供的⼀些辅助⽂档⽽已,并不是真正要⽤的jar包的内容
3、schema⾥⾯是Spring每个组件、每个版本的.xsd⽂件,⽤来设置.xml⽂件⾃动提⽰⽤的
Spring环境搭建以及.xml⽂件⾃动提⽰设置
为了后⾯的学习,这⾥讲解⼀下如何搭建⼀个Spring框架以及如何为.xml⽂件设置Spring标签及相应属性的⾃动提⽰:
1、右键⼯程->Build Path->Configure Build Path...,选择Add External JARs...,导⼊所有libs下的jar包(如果只⽤bean⼯⼚的功能其实不全部导⼊也⾏)
2、我们知道,Spring的使⽤是通过写配置⽂件的,所以右键src->new->File,随便命名,以xml结尾即可
3、xml⽂件⾥⾯写⼊,这是最基础的模板,往后所有功能都在这个模板上扩展:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-4.2.xsd">
</beans>
4、点击Window->Preferences->MyEclipse->Files and Editors->XML->XML Catalog->Add->File System...,选择解压后的⽬录Schema⽂件夹,beans⽬录下的spring-beans-4.2.xsd,其实选任何⼀个版本的.xsd都可以,只要和你的Spring的.xml⽂件⾥⾯那个版本号对应就可以了
5、Key Type选择"Schema Location",key填"/schema/beans/spring-beans-4.2.xsd",也就是.xml⽂件⾥⾯的那个路径
6、点击OK即可,之后配置Spring别的功能⽐如aop、context、jdbc什么的XML提⽰也可以⽤类似的⽅法,.xml⾥⾯配置⼀个地址,XML Catalog⾥⾯添加⼀个XML Catalog Entry
Spring⽇志系统搭建
Spring采⽤Apache common_logging,并结合Apache log4j作为⽇志输出组件,为了在调试过程中可以观察到Spring的⽇志输出,请先下载common_logging和log4j两个jar 包,不知道最新的两个jar包是什么版本的,我⽤的是⽐较⽼的,以前就下载的:
下载了之后请确保你的CLASSPATH下有这两个jar包。
有了这两个jar包之后,右键src,新建⼀个"log4j.properties"⽂件,配置如下:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
yout=org.apache.log4j.PatternLayout
yout.ConversionPattern=%c{1} - %m%n
这样,在使⽤Spring的过程中,你就可以看到Spring的⽇志输出了。
Spring源码下载及导⼊MyEclipse
既然我们的要学习源代码,那势必要获取Spring的源码。
Spring的源码是通过GitHub进⾏管理的,下载Spring源码并导⼊MyEclipse需要两样⼯具:
1、GitHub,
2、Gradle,,注意下载安装完Gradle要创建GRADLE_HOME系统变量,并将这个系统变量加⼊到path中,就和JDK⼀样,这个不会的可以,安装完进⼊cmd,输⼊命令"gradle -version",打印出gradle的版本信息就表⽰gradle可以⽤了
GitHub和Gradle都安装完毕之后,分两步:
1、使⽤GitHub下载源码
⾸先下载安装这两个⼯具,OK之后,GitHub的bin⽬录下双击"tclsh85.exe",就跟使⽤cmd⼀样的,先随便找⼀个想要下载到的⽬录,使⽤"git clone
git:///SpringSource/Spring-framwwork.git"下载Spring源代码,如图:
下载完毕应该是:
2、当前下载的源码并不能直接导⼊MyEclipse中,我们还需要将源码转换为MyEclipse认识的形式,所以这时候就要⽤Gradle了。
cmd进⼊命令窗⼝,切换⾄下载Spring源码所在的⽬录,我们想要把哪个模块的源码转成MyEclipse的就操作哪个⽂件夹,具体⽅式为:
转换完毕应该是:
此时我们看⼀下⽂件夹下的spring-beans⽬录:
这就是MyEclipse认识的形式,直接Import进⼊MyEclipse,当然这个时候项⽬上有红⾊感叹号,表⽰⼯程有错,错误在:
⽤⼀样的⽅式把spring-core转⼀下导⼊源码⼯程就好了。
另外,spring-cglib-repack-3.1.jar和spring-objenesis-repack-2.2.jar报错的问题,上⽹找⼀下这两个jar包下载并导⼊就好了,我是在CSDN上下载的。