Spring框架(三):Spring整合Mybaits、Junit

  • Post author:
  • Post category:其他




Spring整合Mybaits

目标:用Spring方式取缔Mybatis中的SqlMapConfig.xml配置文件



1、开启注解扫描

@Configuration //声明当前类为Spring配置类

//设置bean扫描路径,多个路径书写为字符串数组格式等价于<context:component-scan base-package=“com.itheima”/>

@ComponentScan({“com.itheima.service”,“com.itheima.dao”})

在这里插入图片描述



2、加载外部文件(和导入其他配置类)

@PropertySource:加载外部文件

@PropertySource(“classpath:jdbc.properties”)

//classpath:相对于resources包下文件

@Import//导入其他配置类的信息(目的:将配置类分类,然后导入Spring配置类)

image-20220516160902937



3、配置Mapper映射扫描和别名配置

image-20220516160951626

附:别名配置

在 cn.com.mybatis.pojo 包里可能也会存在多个 JavaBean,这时候一个一个配置别名就会很麻烦,这时候就需要批量定义别名,批量指定很简单,只要指定包名即可,之后程序会为包下的所有类都自动加上别名,其定义别名的规范就是对应包装类的类名首字母变为小写,其示例代码如下:

<typeAliases>
    <package name="cn.com.mybatis.pojo"/>
</typeAliases>

这时设置的包名下的类就都有了别名,别名就是类名(首字母小写),User 类,其别名就为 user。

另外一种别名配置方式,直接使用@Alias

@Alias("user")
public class User{
    ...}



4、数据库环境配置(外部文件注入属性)

image-20220516161017397



5、开始测试

1、Spring注解获取上下文容器对象的方式和Mybatis的不同(因为不再使用SqlMapConfig.xml文件),直接加载Spring.class来获取上下文容器对象

2、可从Spring容器中直接getBean来使用

public class App2 {
    public static void main(String[] args) {
        //在上方Spring配置完成后,可以直接加载Spring.class来获取上下文容器对象
        // (该对象配置好了数据库的相关操作)
        ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

        //由Service来查询
        AccountService accountService = ctx.getBean(AccountService.class);
        Account ac = accountService.findById(1);
        System.out.println(ac);
    }
}



Spring整合Junit



1、导入依赖

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>5.2.10.RELEASE</version>
</dependency>



2、开始测试


@RunWith

就是一个运行器,后面加什么反射就是使用什么环境来运行

——

@RunWith(SpringJUnit4ClassRunner.class)

,让测试运行于Spring测试环境

@ContextConfiguration(classes = SpringConfig.class) //引入配置,

Spring整合JUnit4测试时,使用注解引入多个配置文件

//设置类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//设置Spring环境对应的配置类——告诉test类相关配置
@ContextConfiguration(classes = SpringConfig.class)
public class AccountServiceTest {
    //支持自动装配注入bean(想要测试的对象)
    @Autowired
    private AccountService accountService;

    @Test
    public void testFindById(){
        System.out.println(accountService.findById(1));
    }
    @Test
    public void testFindAll(){
        System.out.println(accountService.findAll());
    }
}

专栏文章:


Spring框架(一):概述及简单使用(基于XML方式)


Spring框架(二):注解开发及快速入门


Spring框架(三):Spring整合Mybaits、Junit


Spring框架(四):AOP面向切面编程


Spring框架(五):Spring事务简述(注解方式)


Spring框架(六):Spring注解简述



版权声明:本文为m0_53142956原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。