zoukankan      html  css  js  c++  java
  • 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官网查看,不过都是全英文版本的。

    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="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/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填"http://www.springframework.org/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
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.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://github.com/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上下载的。

  • 相关阅读:
    ADB命令大全
    Backup your Android without root or custom recovery -- adb backup
    Content portal for Pocketables Tasker articles
    Is there a way to detect if call is in progress? Phone Event
    Tasker to proximity screen off
    Tasker to detect application running in background
    Tasker to create toggle widget for ES ftp service -- Send Intent
    Tasker to proximity screen on
    Tasker to answer incoming call by pressing power button
    Tasker to stop Poweramp control for the headset while there is an incoming SMS
  • 原文地址:https://www.cnblogs.com/szlbm/p/5512914.html
Copyright © 2011-2022 走看看