Spring学习笔记(四)整合MyBatis/Junit

Spring整合MyBatis

1.pom.xml中添加mybatis的依赖

 <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.11</version>
 </dependency>
 <!--spring操作数据库专用依赖-->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-jdbc</artifactId>
     <version>5.3.24</version>
 </dependency>
 ​
 <!--spring整合mybatis使用的依赖-->
 <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis-spring</artifactId>
     <version>2.1.0</version>
 </dependency>
 <!--数据库驱动-->
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.28</version>
     <scope>compile</scope>
 </dependency>

2.添加Mybatis配置文件

 public class MybatisConfig {
     //定义Bean,用于产生SqlSessionFactory对象
     @Bean
     public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
         SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
         ssfb.setTypeAliasesPackage("com.yuan.domain");
         //为第三方Bean注入引用类型依赖
         ssfb.setDataSource(dataSource);
         return ssfb;
    }
 ​
     //定义Bean,返回MapperScannerConfigurer对象,代替mybatis配置文件中的mapper标签package
     @Bean
     public MapperScannerConfigurer mapperScannerConfigurer(){
         MapperScannerConfigurer msc = new MapperScannerConfigurer();
         msc.setBasePackage("com.yuan.dao");
         return msc;
    }
 }

配置文件中主要有两个bean,分别对应原先Mybatis配置文件的不同配置内容

image-20230302215125659

Spring整合Junit

1.因为是整合到spring,所以pom.xml文件中除了添加junit单元之外,还要添加spring的依赖

 <!-- junit测试 -->
 <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.13.1</version>
     <scope>test</scope>
 </dependency>
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-test</artifactId>
     <version>5.2.10.RELEASE</version>
 </dependency>

2.测试单元中添加注解RunWith是采用spring整合junit专用的类加载器;ContextConfiguration告诉junit该spring项目使用的spring环境(否则junit不知道bean在哪呀)。

 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(classes = SpringConfig.class)
 public class AccountServiceTest {
 ​
     @Autowired
     private AccountService accountService;
     @Test
     public void testFindById(){
         System.out.println(accountService.findAll());;
    }
 }

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注