Java菜鸟学习日记25

来源:互联网 发布:ios蜂窝移动数据应用 编辑:程序博客网 时间:2024/06/18 17:57
MyBatis和Spring和Spring-Test整合
  1. MyBatis和Spring整合实现数据层开发
  2. MyBatis和Spring-Test+JUnit整合实现数据层单元测试
  3. 在properties中定义spring.version的目的是统一管理spring的版本号,方便今后切换。
  4. Spring-Test:专门提供以简化Spring应用的测试。并且解决了Spring项目在测试时无法注入bean的问题。
Jar包搜索/Maven仓库
  • https://mvnrepository.com/
  • 可以让开发人员搜索、查看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
  • Dao接口不用写实现类了
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,加入以来项目
    1. JUnit(test)
    2. Spring-test(test)
    3. 数据库驱动
    4. 连接池
    5. MyBatis
    6. MyBatis+Spring
    7. Spring事务
    8. SpringORM支持
    9. Spring面向切面支持
    10. Spring上下文支持
  3. 定义模型(main)
  4. 定义Dao(main)
  5. 定义Mapper.xml配置文件
  6. Service
  7. 测试类
  8. 在测试类上通过注解创建应用上下文
    1. 并且为指明使用Spring测试运行类运行测试用例
  9. 创建应用上下文配置文件
  10. 创建mybatis配置文件