1.直接基于spring framework开发自己的应用程序:

  1.1参考资料:

    Spring官网spring-framework.4.3.5.RELAESE的Reference Documentation的下面的章节

          

  1.2学习心得

        • spring framework是一个模块化的工程,该框架被划分成大约20个模块,用户可以根据自己的项目想要完成的功能灵活选用spring framework的若干功能模块集成到自己的项目中,并不需要集成spring framework中所有模块到自己的项目中。(关于你的项目中应该选用哪些模块,“本文1.1小节中提及的资料”中有列举一些例子,开发者可以参照该reference documentation中列举的这些例子来选取自己的project所要集成的模块)
        • 由于spring framework是支持maven的,所以在自己的项目中集成spring framework的若干模块时,可以使用maven。
            • 如何配置maven的pom.xml来集成spring framework的若干module,请参见本文1.1小节中提及的参考资料    
            • 也可以配置pom.xml使得不是从maven中央仓库而是从spring maven lib下载相关jar包到本地仓库,具体配置方法参见请参见本文1.1小节中提及的参考资料
            • Maven "Bill Of Materials" Dependency,通过BOM管理要引入的各个模块的版本号,避免不同jar包之间发生版本冲突问题,具体配置方法参见请参见本文1.1小节中提及的参考资料
        • spring framework也会依赖很多三方库、三方插件等,但是这些依赖并不是强制性依赖关系,开发者在自己的project中引用spring framework的若干模块时,可以不引入spring framework所依赖的其他三方插件,除了logging插件。也就是说,开发者在自己的project中使用spring framework时,必须考虑引入spring framework所依赖的logging插件,也只需要考虑这一个插件,因为it is the only mandatory【强制性的】 external dependency of spring framework。
            • spring framework本身所集成的logging插件是commons-logging,但是这个logging插件并不是很好用,所以一般需要开发者将commons-logging替换成其他日志管理工具,如Log4J、SLF4J
            • 要想替换掉spring framework各个模块中的commons-logging,只需要替换掉spring-core module中的common-logging即可,因为spring-core是spring framework中唯一一个显示依赖commons-logging的模块,而spring framework的其他模块都是基于spring-core发展而来的,其他模块都是通过spring-core获取commons-logging的功能的
            • 如何将spring framework的commons-logging替换成其他日志管理工具如 Log4J、SLF4J,参见本文第1.2节中提到的参考资料
                • SLF4J provides bindings to many common logging frameworks, SLF4J is bridges between other logging frameworks and itself      

  1.3 实际操作

      step1,在myeclipse中创建了一个maven web project,   教程

      step2,编写该project的pom.xml,集成spring framework的spring-context模块

      step3,修改pom.xml,修改spring framework所以来的logging插件,将commons-logging改成其他logging插件,如 Log4J

        • step3.1,exclude the existing commons-logging from Spring Framework的spring-core module
        • step3.2,You need to supply 4 dependencies: the bridge, the SLF4J API, the binding to Log4J, and the Log4J implementation itself.
            • the bridge,SLF4J-JCL bridge.在spring framework和SLF4J之间建立起桥梁,这样一来, logging calls from within Spring will be translated into logging calls to the SLF4J API,
            • the SLF4J API,
            • the binding to Log4J,
            • the Log4J implementation itself.    

          

        • pom.xml
        • <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>bupt.jinmensuyin</groupId>
          <artifactId>TestSpring</artifactId>
          <packaging>war</packaging>
          <version>0.0.1-SNAPSHOT</version>
          <name>TestSpring Maven Webapp</name>
          <url>http://maven.apache.org</url>
          <dependencyManagement>
          <dependencies>
          <!-- BOM:bill of materials,其实就是一个列表,该列表中描述了spring framework各个模块及其唯一的版本号,
          引入BOM之后,下面再引入spring framework的各个module时,就可以省略<version>标签,maven会自动查询BOM来
          得知应该引入该module的哪个版本 -->
          <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-framework-bom</artifactId>
          <version>4.3.5.RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
          </dependency>
          </dependencies>
          </dependencyManagement>
          <dependencies>
          <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
          </dependency>
          <!-- spring framework的spring-context模块提供依赖注入功能 -->
          <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <scope>runtime</scope>
          </dependency>
          <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <exclusions>
          <!-- exclusion:排除
          这里的配置将commons-logging这个三方日志库文件从spring-core模块中排除出去,
          这样一来spring framework的所有模块都没有了logging插件
          (为什么Exclude the dependency from the spring-core module就等于从整个spring framework
          的所有module中都排除了commons-logging?
          答:因为the spring-core module is the only module that explicitly显式地 depends on
          commons-logging,spring framework的其他module都是基于spring-core的,
          其他module通过spring-core获得commons-logging提供的功能)) -->
          <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          </exclusion>
          </exclusions>
          </dependency>
          <!-- 排除了spring framework中本身带有的commons-logging之后,要继承其他的三方log插件来管理日志
          You need to supply 4 dependencies: the bridge, the SLF4J API,
          the binding to Log4J, and the Log4J implementation itself.-->
          <!-- 在spring framework和SLF4J之间架起桥梁,使得logging calls from within Spring
          will be translated into logging calls to the SLF4J API, -->
          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.5.8</version>
          </dependency>
          <!-- the SLF4J API, -->
          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.5.8</version>
          </dependency>
          <!-- 在SLF4J和Log4J之间架起桥梁 -->
          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.5.8</version>
          </dependency>
          <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.12</version>
          </dependency>
          </dependencies>
          <build>
          <finalName>TestSpring</finalName>
          </build>
          <repositories>
          <!-- 添加了如下配置之后,就不从maven中央仓库下载相关jar包,而是从如下url下载相关jar包
          到maven本地仓库 -->
          <repository>
          <id>io.spring.repo.maven.release</id>
          <url>http://repo.spring.io/release/</url>
          <snapshots><enabled>false</enabled></snapshots>
          </repository>
          </repositories>
          </project>

                          

Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用Spring Framework开发自己的应用程序的更多相关文章

  1. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->关于spring framework中的beans

    Spring framework中的beans 1.概述 bean其实就是各个类实例化后的对象,即objects spring framework的IOC容器所管理的基本单元就是bean spring ...

  2. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用spring framework的IoC容器功能----->方法一:使用XML文件定义beans之间的依赖注入关系

    XML-based configuration metadata(使用XML文件定义beans之间的依赖注入关系) 第一部分 编程思路概述 step1,在XML文件中定义各个bean之间的依赖关系. ...

  3. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中web相关的知识(概述)

    Spring Framework中web相关的知识 1.概述: 参考资料:官网documentation中第22小节内容 关于spring web mvc:  spring framework中拥有自 ...

  4. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块

    spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...

  5. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework的依赖注入和控制反转

    Dependency Injection and Inversion of Control 1.概述: 1.1相关概念 bean:由IoC容器所管理的对象,也即各个类实例化所得对象都叫做bean 控制 ...

  6. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework概述

    Spring Framework是什么? it is a potential one-stop-shop for building your enterprise-ready applications ...

  7. Spring Framework------>version4.3.5----->Reference学习心得----->总结

    1.Spring Framework概述: 有很多可用版本,网址http://projects.spring.io/spring-framework/       2.Spring Framework ...

  8. Spring Framework 4.3.22.RELEASE Reference文档目录

    <Spring Framework Reference Documentation 4.3.22.RELEASE> https://docs.spring.io/spring/docs/4 ...

  9. Springfox Reference Documentation

    1. Introduction The Springfox suite of java libraries are all about automating the generation of mac ...

随机推荐

  1. XE6 & IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.自己给自己颁发证书, ...

  2. OpenCV的数据类型---Cv

    CvScalar就是一个包含四个元素的结构体变量. CvScalar定义可存放1—4个数值的数值,其结构如下. typedef struct CvScalar{    double val[4];}C ...

  3. python 核心编程课后练习(chapter 5)

    5-2 #5-2 def mul(x, y): return x * y print mul(4,5) 5-3 #5-3 def value_score(num): if 90<=num< ...

  4. python模块之configparser

    configparser用于处理特定格式的文件,其本质上是利用open来操作文件. # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section ...

  5. THINKPHP中关于接口问题(客户端)

    一 apk版本号 客户端发送get请求访问服务器端的控制器方法,通过用户传过来的用户名和密码. 二  服务器端通过客户端传入的user and password 去数据库进行查询,Success就生成 ...

  6. Encrypting bootloader (程序BIN文件加密及在线升级)

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 在上一个博客随笔,我介 ...

  7. shell中的语法(1)

    反引号 命令替换.将命令的输出放在命令行的任意位置. eg. [root@gam ~]# echo The Data is `date` The Data is Fri Nov 18 10:13:56 ...

  8. AP创建会计科目

    一. 创建会计科目的途径 1. 在发票工作台对单张发票进行创建科目: 2. 提交“创建会计科目”并发请求,对所有已经验证但尚未创建会计科目的发票进行创建会计科目. 二. 对单张发票创建会计科目 发票在 ...

  9. GetStoredProcCommand和GetSqlStringCommand的区别

    原文:http://www.ithao123.cn/content-4004602.html http://hi.baidu.com/847270942/blog/item/c224dd557ff74 ...

  10. WeedFS0.6.8-引用库列表

    WeedFS 0.68新增了对cassandra数据库存储的支持及JSON Web Token(JWTs)安全的支持. github.com/gocql/gocql //filer/cassandra ...