SSM框架——pom文件解析

ssm---->pom文件解析

一.dependencies结构

学习Spring Maven构建的时候,经常会在pom.xml文件里引入以下结构的代码

  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${srping.version}</version>
    </dependency>

最后他们会整合成唯一资源的地址:org.springframework:spring-test-${srping.version}

1.里面的标签都是什么呢?

  • dependency:翻译过来=依赖

  • groupId: the unique identifier of the organization or group that created the project —> (创建项目的组织或组织的唯一标识符)

    实际对应Java的包的结构,是main目录里java的目录结构|定义项目输入哪个组

    例子:如果有个公司叫做黑客帝国,正在做一个叫做超级病毒的项目,那我们就可以定义为***“com.hkdg.cjbd”***

  • artifactId: unique base name of the primary artifact being generated by this project -->(由该项目生成的主要工件的唯一基本名称) | 简单理解为:项目的唯一表示符

    定义了当前maven项目在组的唯一ID

    例子:spring项目下又分为多个module

    spring–mvc spring–boot spring–ioc

  • version:指定了当前myapp项目的当前版本

    小知识点:

    请添加图片描述

举例:

 <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>
  • javax:

    java和javax都是Java的API(Application Programming Interface)包,java是核心包,javax的x是extension的意思,也就是扩展包。java类库是java发布之初就确定了的基础库,而javax类库则是在上面增加的一层东西,就是为了保持版本兼容要保存原来的,但有些东西有了更好的解决方案,所以,就加上些,典型的就是awt(Abstract Windowing ToolKit) 和swing

  • javaee-api:

    Javaee:F

    API:应用程序接口

各个依赖的作用:

1.Junit
<!--单元测试-->
<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
      <scope>test</scope>
  • junit:

    1.JUnit是一个Java语言的单元测试框架。
    2.JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具
    3.JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了
    
  • 作用:

    1.引用juint的依赖,做单元测试
    
2.Javax
  <!-- java ee包 -->
<dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
</dependency>
  • javax:javaJavax都是Java的API(Application programming Interface)的包,Java是核心包.javax的x是extension的意思,也就是扩展包
  • javaee-api:javaee应用程序接口
3.SpringFrameWork(Package)
(1).spring-test
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-test: 对spring框架进行单元测试的依赖
(2).spring-core
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${srping.version}</version>
    </dependency>
  • spriing-core:这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类
(3).spring-oxm
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-oxm</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-oxm : Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
(4).spring-tx
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${srping.version}</version>
  </dependency>
  • spring-oxm:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理
(5).spring-jdbc
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${srping.version}</version>
 </dependency>
  • spring-jdbc:对jdbc的简单封装
  • spring-jdbc:含对Spring 对JDBC 数据访问进行封装的所有类
(6).spring-aop
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-aop:
  • Spring的面向切面编程,提供AOP(面向切面编程)的实现
  • spring-aop:在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包
(7).spring-context
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持
  • 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类
(8).spring-context-support
  <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${srping.version}</version>
  </dependency>
  • spring-context-support: Spring context的扩展支持,用于MVC方面。
  • 这个jar文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),任务计划Scheduling(uartz)方面的类
(9).spring-expression
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-expression:Spring表达式语言
(10).spring-orm
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
(11).spring-web
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${srping.version}</version>
</dependency>
  • spring-web: 包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类
(12).spring-webmvc
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${srping.version}</version>
 </dependency>
  • spring-webmvc:这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果某个应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。

4.Mybatis(Package)
(1).mybatis
<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
</dependency>
  • mybatis:是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低
(2).mybatis-spring
<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.2</version>
</dependency>
  • mybatis-spring: MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring

5.数据库驱动
 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.35</version>
 </dependency>
  • mysql-connector-java:,mysql连接器

6.阿里巴巴连接池
 <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.9</version>
 </dependency>
  • druid:Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。

7.dbcp
 <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>

8.jstl
 <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
 </dependency>
  • jstl:标准标签库,JSP标准标识库,使用JSTL可实现JSP页面的逻辑处理; 可用于编写各种动态JSP页面

9.log4j
<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>${log4j.version}</version>
</dependency>
  • log4j:是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码


10.slf4j
  • slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统
(1).slf4j-api
 <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
 </dependency>
  • slf4j-api:本质就是一个接口定义

(2).slf4j-log4j12
 <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
 </dependency>
  • slf4j-log4j12:是log4j对slf4j日志接口的一种实现方案

11.Json
  • json:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式
(1).fastjson
 <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.6</version>
 </dependency>
  • fastjson:是一个java类库,可以被用来把Java对象转换成Json方式.也可以把Json字符串转换成对应的Java对象.Fastjson可以作用于任何Java对象,包含没有源代码已存在的对象
(2).jackson-mapper-asl
<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>1.9.13</version>
</dependency>
  • jackson-mapper-asl:java对象和json相互转化

12.上传组件包
  • 组件(Component)是对数据和方法的简单封装

(1).commons-fileupload (英文翻译–文件上传)

 <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
 </dependency>
  • commons-fileupload:他是apache出品的文件上传组件,用来接收浏览器上传的组件,该组件有多个类组成

(2).commons-io

 <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
 </dependency>
  • commons-io:

    Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分

    • Utility classes – 包括一些静态方法来执行常用任务
    • InputInputStreamReader 实现
    • OutputOutputStreamWriter 实现
    • Filters – 多种文件过滤器实现(定义了 IOFileFilter接口,同时继承了 FileFilterFilenameFilter 接口)
    • 用于文件比较的多种java.util.Comparatot实现

(3).commons-codec

<dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.10</version>
</dependency>
  • commons-codec:是项目中用来处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64,URL,Soundx等等。不仅是编码,也可用于解码
13. build 标签
  • 在Maven的pom.xml⽂件中,存在如下两种:
    (1)全局配置(project build)
    针对整个项⽬的所有情况都有效
<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">  
  ...
 
  <build>
  	<finalName>Test_Spring_SpringMVC_Mybatis</finalName>  
  </build> 
  ...
</project> 
  • ​ : build⽬标⽂件的名称,默认情况为 a r t i f a c t I d − {artifactId}- artifactId{version}

​ (2)配置(profile build)

​ 针对不同的profile配置

<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">  
  ... 
  <profiles>  
    <profile>  
      <!– "Profile Build" contains a subset of "Project Build"s elements >  
      <build></build>  
    </profile>  
  </profiles>  
  ...
 
</project>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜宵吃不

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值