Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

时间:2022-02-08 21:38:53

一、Maven将父项目创建到父项目的内部

在父项目的pom.xml上 点右键,选择maven-->new-->maven module  project

二、Maven聚合

在某个项目的pom.xml文件中,添加<modules></modules>引用其他项目即可将多个项目聚合成一个整体

在总pom上执行命令时,会在每一个被聚合的项目上都执行这个命令

而且还会根据项目之间的依赖决定正确的执行顺序

MyBatis 和Spring
和Spring-Test整合

MyBatis 和Spring整合实现数据层开发

MyBatista和Spring-Test  + JUnit整合实现数据层单元测试

在properties中定义spring.version的目的是统一管理spring的版本号

方便今后切换

Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

Spring-Test 专门提供以简化Spring应用的测试,并且解决了Spring项目在测试时无法注入bean的问题

Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

三、Jar包搜索/Maven仓库

可以让开发人员搜索、查看jar包的各种版本,以及每个版本的详细信息和maven

坐标,也可以直接下载Jar包

挑选Jar包时,选择版本较新、正式版、使用人数多的版本

不用使用测试版、除非有特殊要求,也不要使用过老的版本

MySQL的驱动包

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.41</version>

</dependency>

数据库连接池

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-dbcp2</artifactId>

<version>2.1.1</version>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-pool2</artifactId>

<version>2.4.2</version>

</dependency>

MyBatis的Jar包

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.4</version>

</dependency>

MyBatis和spring的整合Jar,能够让MyBatis和spring协同工作

能够进一步简化数据层代码

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.1</version>

</dependency>

Spring的数据库事务管理Jar包,可以简化事务开发

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>${spring.version}</version>

</dependency>

Spring的数据层

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

<version>${spring.version}</version>

</dependency>

Spring的面向切面编程支持

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aspects</artifactId>

<version>${spring.version}</version>

</dependency>

Spring上下文支持功能(Spring的强大功能必须在Spring上下文范围内才能生效,离开上下文就会瘫痪、无法正常工作)

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>${spring.version}</version>

</dependency>

MyBatis的Dao层

在MyBatis的概念中,Dao被称为Mapper,即映射器

Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

四、如果与Spring整合,Dao接口上应该加上@Mapper注解,
加上这个注解后,可以自动生成Dao的实现对象

Dao接口中的方法参数(通常只有一个参数)

要么是一个类(基本类型或复杂类型)

要么是一个HashMap

使用带名字的HashMap原因是可以传递多个参数

Dao接口不用写实现类了!!

在Spring中不允许自己new Dao、Service!!

Dao和Service是Spring统一管理的

五、MyBatis的服务层

与Spring整合时,Service类上应该添加@Service注解

加上这个注解后,Spring可以自动帮助我们给service属性赋值

Spring 会接管Service类,替我们创建Service类的对象(bean)

(凡是别Spring接管对象都可以称为bean)

@Autowired注解,在Spring上下文中运行时,会自动给它标记的属性赋值。我们不用自己new对象!

(注意:如果不在Spring上下文中,就会失效)

六、怎么理解上下文

Spring 上下文是可以看做一个包含了很多对象的池子

利用@Service等注解可以把类注册进去

利用@Autowired等注解可以把对象取出来

七、Spring-Test
整合测试

为了在测试用例中能够正常使用Spring注解,Spring官方专门提供了Spring-Test包,其中的:

  @ContextConfiguration能够在测试环境中加载应用上下文配置

                          帮助我们快速创建应用上下文

     @RunWith
通过利用SpringJUnit4ClassRunner可以使测试用例在创建好的测试应用上下文中运行

八、Spring +MyBatis+JUnit+Maven整合测试的搭建过程

1.创建父子项目(也可以只创建一个项目,而不采用maven继承)

2.修改pom.xml,加入依赖项

A)JUnit(test)

B) spring-test(test)

C) 数据库驱动

D) 连接池

E) MyBatis

F) MyBatis-Spring

G) Spring 事务

H) Spring ORM支持

I) Spring 面向切面支持

J) Spring 上下文支持

3.定义模型(main)

4.定义Dao(main)

5.定义Mapper xml
配置文件

6. Service

7.测试类

8.在测试类上通过注解创建应用上下文,并且指明使用Spring测试运行类运行测试用例

9.创建应用上下文配置文件

10.创建mybatis配置文件

Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程的更多相关文章

  1. eclipse 如何修改maven插件本地仓库jar包默认存储位置

      eclipse 如何修改maven插件本地仓库jar包默认存储位置 CreateTime--2018年4月18日11:04:47 Author:Marydon 1.更改eclipse的maven本 ...

  2. 转:MAVEN依赖的是本地工程还是仓库JAR包?

    相信大家都碰见过 maven 配置的依赖或者是 jar 包或者是工程,在开发的过程当中,我们当然需要引入的是工程,这样查看 maven 依赖的文件的时候,就能直接查看到源码. 一.本地工程依赖 举个例 ...

  3. Maven依赖的是本地工程还是仓库jar包?

    相信大家都碰见过maven配置的依赖或者是jar包或者是工程,在开发的过程当中,我们当然需要引入的是工程,这样查看maven依赖的文件的时候,就能直接查看到源码. 一.本地工程依赖 举个例子,其架构如 ...

  4. maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用

    maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用

  5. maven导入sqlserver驱动jar包依赖包到本地仓库

    maven导入sqlserver驱动jar包依赖包到本地仓库 maven项目使用sqlserver的依赖,先下载一个sqlserver的驱动,网址:https://www.microsoft.com/ ...

  6. &lpar;转&rpar;通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包

    文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者*仓库没有的jar包,然后通过 ...

  7. 如何解决Maven和SBT下载Jar包太慢

    国内:如何解决Maven和SBT下载Jar包太慢 Maven 远程仓库 <mirror> <id>ui</id> <mirrorOf>central&l ...

  8. 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...

  9. eclipse导入maven项目后依赖jar包更新问题-&gt&semi;update project按钮

    eclipse导入maven项目后依赖jar包更新问题 1.eclipse有专门的导入maven项目按钮,file-import-maven project,eclipse会自动查找指定路径下的pom ...

随机推荐

  1. Proe Top-Down设计演示

    前段时间有网友问我,proe 里面有没有装配设计中当某一零件尺寸需要修改时, 与其相关的零件尺寸都需要随之做相应改变的法子.我认为top-down是很好的选择. 下面介绍一下top-down的理论: ...

  2. dom树的介绍,及原理分析

    三.解析和DOM树的构建 1.解析: 由于解析渲染引擎是一个非常重要的过程,我们将会一步步的深入,现在让我们来介绍解析. 解析一个文档,意味着把它转换为一个有意义的结构——代码可以了解和使用的东西,解 ...

  3. dp优化简单总结

    1.二分优化 (使用二分查找优化查找效率) 典型例题:LIS dp[i]保存长度为 i 的上升子序列中最小的结尾,可以用二分查找优化到nlogn 2.数学优化 (通过数学结论减少状态数) 例题1:hd ...

  4. (入门篇 NettyNIO开发指南)第四章-TIP黏包&sol;拆包问题解决之道

    熟悉TCP编程的读者可能都知道,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制.木章开始我们先简单介绍TCP粘包/拆包的基础知识,然后模拟一个没有考虑TCP ...

  5. Maven详解(三)------ Maven工程目录介绍

    上一章我们配置并安装好了 Maven,那么这一章我们介绍如何用eclipse创建一个 Maven 工程,然后介绍 Maven 工程的目录结构. 1.eclipse 创建 Maven 工程 第一步:Fi ...

  6. MySQL 是如何解决幻读的

    MySQL 是如何解决幻读的 一.什么是幻读 在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读. 而多出来或者少的哪一行被叫做 幻行 二.为什么要解决幻读 在高并发数据库系统中,需要保证 ...

  7. 37&lowbar;redux&lowbar;理解

    1.什么是Redux Redux是JavaScript状态容器(是JS库,不是react插件),提供可预测化的状态管理. 可以用在react.angular.vue等项目中,但基本与react配合使用 ...

  8. Xcode真机调试失败:The identity used to sign the executable is no longer valid

    在Xcode中突然好久没有使用真机调试了.今天使用真机的时候.出现例如以下的警告.并真机执行失败: The identity used to sign the executable is no lon ...

  9. linux 与 windows 挖门罗币总结

    比特币之前一直很火,初次了解的时候才2000RMB一枚..看不懂哇,错失良机...当然了,看得懂也不买不起..当时还是穷学生. 最近又一直看到黑客利用linux漏洞挖门罗币获利的新闻,决定好生研究一下 ...

  10. SpringAOP深入学习

    ----------------------Spring AOP介绍------------------ 1.编程范式概念 面向过程编程:C 面向对象编程:c++,Java 函数式编程 事件驱动编程: ...