Spring(一)

2018-05-30 15:03:25

摘录于:《精通Spring 4.X--企业应用开发实战》

构建工具Maven

1.Maven基础概念

  • Project:任何你想构建的事务,Maven都可以认为它们是工程。这些工程被认定为工程对象模型(Project Object Model,POM)。一个工程可以依赖其他的工程,一个工程也可以由多个子工程构成。
  • POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
  • GroupId:GroupId是一个工程再全局中唯一标识符,一般地,它就是工程名。GroupId有利于使用一个完全的包名将一个工程从其他有类似名称的工程中区别出来。
  • Artifact:中文名为“构件”,是工程将要生产或需要使用的文件,它可以是.jar文件,源文件,二进制文件,.war文件,甚至是.pom文件。每个Artifact都由GroupId和ArtifactId组合的标识符唯一识别。需要被使用的Artifact都要放在仓库(见Repository)中,否则Maven无法找到它们。
  • Dependency:为了能够构建或运行,一个典型的Java工程会依赖其他的包。在Maven中,这些被依赖的包就被称为Dependency。Dependency一般是其他工程的Artifact。
  • Plug-in:可以说Maven就是一堆插件的集合,它的每一个功能都是由插件完成的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件是由Java编写而成的,同时支持用Beanshell或Ant脚本编写的插件。
  • Repository:仓库,即放置Artifact的地方,有中央仓库,公共仓库,私有仓库及本地仓库之分。为了提高Artifact的下载速度,一般情况下,公司或开发者组织都需要部署一个私有仓库,可使用Nexus(http://www.sonatype.org/nexus)创建Maven私有仓库。

依赖反转

  • 早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题。他得出结论是:依赖对象的获取被反转了。基于这个结论,他为控制反转创造了一个更好的名字:依赖注入。许多非凡的应用(比HelloWorld.java更加优美,更加复杂)都是由两个或多个类通过彼此的合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,那么如你所见,这将导致代码高度耦合并且难以测试。

 

 

posted @ 2018-05-30 15:55  Accper  阅读(127)  评论(0编辑  收藏  举报