Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程
一、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的版本号
方便今后切换
Spring-Test 专门提供以简化Spring应用的测试,并且解决了Spring项目在测试时无法注入bean的问题
三、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,即映射器
四、如果与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整合测试的搭建过程的更多相关文章
- eclipse 如何修改maven插件本地仓库jar包默认存储位置
eclipse 如何修改maven插件本地仓库jar包默认存储位置 CreateTime--2018年4月18日11:04:47 Author:Marydon 1.更改eclipse的maven本 ...
- 转:MAVEN依赖的是本地工程还是仓库JAR包?
相信大家都碰见过 maven 配置的依赖或者是 jar 包或者是工程,在开发的过程当中,我们当然需要引入的是工程,这样查看 maven 依赖的文件的时候,就能直接查看到源码. 一.本地工程依赖 举个例 ...
- Maven依赖的是本地工程还是仓库jar包?
相信大家都碰见过maven配置的依赖或者是jar包或者是工程,在开发的过程当中,我们当然需要引入的是工程,这样查看maven依赖的文件的时候,就能直接查看到源码. 一.本地工程依赖 举个例子,其架构如 ...
- maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
- maven导入sqlserver驱动jar包依赖包到本地仓库
maven导入sqlserver驱动jar包依赖包到本地仓库 maven项目使用sqlserver的依赖,先下载一个sqlserver的驱动,网址:https://www.microsoft.com/ ...
- (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...
- 如何解决Maven和SBT下载Jar包太慢
国内:如何解决Maven和SBT下载Jar包太慢 Maven 远程仓库 <mirror> <id>ui</id> <mirrorOf>central&l ...
- 利用Maven把项目生成jar包供其他项目使用
每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...
- eclipse导入maven项目后依赖jar包更新问题->update project按钮
eclipse导入maven项目后依赖jar包更新问题 1.eclipse有专门的导入maven项目按钮,file-import-maven project,eclipse会自动查找指定路径下的pom ...
随机推荐
- ubuntu下修改读写权限
把home下所有文件所有者改成输入目标 $ chown - R [your name].users /home/
- 安卓开发学习2-官方例子Accelerometer
1.使用WakeLock防止屏幕被锁住,如果用户自己锁住屏幕,下次再开的时候还会重置一下,防止被锁. 2.SimulationView接收传感器事件,并且绘制.它实现SensorEventListen ...
- quick cocos2d-x 2.2.4 window环境调试
BabeLua简介 BabeLua是一款基于VS2012/2013(简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有如下功能和特性: ●Lua语法高亮 ●语法检查 ●自动补全 ● ...
- hdoj 1026 Ignatius and the Princess I 最小步数,并且保存路径
Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- vue 单元测试
单元测试 配置和工具 任何兼容基于模块的构建系统都可以正常使用,但如果你需要一个具体的建议,可以使用Karma进行自动化测试.它有很多社区版的插件,包括对webpack和browserify的支持. ...
- MapReduce编程实例5
前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...
- Python中import和from import
Python里面的import和from import都是用于导入一个模块,两者的区别是 如果你在使用某模块内函数时不想写模块名,那么就用from import方式导入,如果是用import方式就要写 ...
- UCOS2_STM32移植详细过程(汇总)
Ⅰ.概述 笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用.笔者想说,实践才是检验真理的关键,实践才是掌握知识 ...
- c/c++常见关键字解释
c语言中常见关键字: char : =>声明字符型变量或函数 double :=>声明双精度变量或函数 enum : =>声明枚举类型 float: =>声明 ...
- 编译FFmpeg for iOS
2项依赖: gas-preprocessor(见附录:gas-preprocessor简介) yasm 1.2.0 如果要集成x264和fdk_aac,需要先编译x264和fdk_aac. Usage ...