Spring框架整合junit:包含配置文件的方式以及纯注解开发的方式

Spring框架整合junit:包含配置文件的方式以及纯注解开发的方式

    • [1. 准备工作](#1. 准备工作)
    • [2. 配置文件的方式](#2. 配置文件的方式)
      • [2.1 未整合前](#2.1 未整合前)
      • [2.2 整合以后](#2.2 整合以后)
    • [3. 纯注解开发的方式](#3. 纯注解开发的方式)
      • [3.1 未整合前](#3.1 未整合前)
      • [3.2 整合后](#3.2 整合后)

Spring框架合集:
Spring框架核心IOC的使用:IOC的作用+Bean管理+实例化Bean的方式+DI依赖注入
Spring框架核心IOC的使用:配置式开发+注解式开发+纯注解式开发

1. 准备工作

添加pom依赖

xml 复制代码
        <!-- spring整合junit -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.2.RELEASE</version>
            <scope>test</scope>
        </dependency>

2. 配置文件的方式

如果不整合junit,那每次在测试类中都要加载配置文件,每次都要 new 一个 ClassPathXmlApplicationContext ,整合之后可以直接调用需要测试类的方法

2.1 未整合前

java 复制代码
public class UserServiceTest {


    //spring ioc 的方式创建对象,ioc是一个map,key-value形式,key是对象的标识,value是ioc创建的对象
    @Test
    public void run1(){
        //创建spring ioc工厂,主要是为了加载spring的配置文件
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取bean对象

	UserService userService = (UserService) ac.getBean("xx");  //强制类型转换
    userService.hello();


    }

}

2.2 整合以后

这里的@ContextConfiguration("classpath:applicationContext.xml")里面的applicationContext.xml是配置文件,@Autowired是为userService注入值

java 复制代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class UserServiceTest {
    @Autowired
    private UserService userService;

    @Test
    public void run1(){

        userService.hello();


    }

}

3. 纯注解开发的方式

3.1 未整合前

未整合前每次需要new一个AnnotationConfigApplicationContext,创建工厂加载配置类,整合以后可以直接调用需要测试的类的方法

整合前的写法

java 复制代码
public class UserServiceTest {
    @Autowired
    private AccountService accountService;
    @Test
    public void run(){


    //创建工厂,加载配置类
    ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
    AccountService accountService = (AccountService) ac.getBean("accountServiceImpl");
    System.out.println(accountService.findAll());

    }



}

3.2 整合后

java 复制代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class UserServiceTest {
    @Autowired
    private AccountService accountService;
    @Test
    public void run(){

    System.out.println(accountService.findAll());

    }



}
相关推荐
老虎06271 天前
Spring mysql 网络接口( HTTP 方法与增删改查, Spring MVC Controller 接收参数的常用注解与参数传递方式)
mysql·spring·http
青槿吖1 天前
第二篇:Spring MVC进阶:注解、返回值与参数接收的花式玩法
java·开发语言·后端·mysql·spring·mvc·mybatis
没有bug.的程序员1 天前
支付扣款成功却未发货?Spring Boot 整合 Kafka 事务消息的物理级防丢防重生死局
spring boot·spring·kafka·linq·事务消息·支付扣款
不吃香菜学java1 天前
苍穹外卖-公共字段填充
java·spring boot·后端·spring·mybatis·ssm
weixin_704266051 天前
SpringMVC核心注解@RequestMapping详解
java·spring
小旭95271 天前
Spring MVC :从入门到精通(上)
java·后端·spring·mvc·intellij-idea
StackNoOverflow1 天前
Spring MVC核心知识点快速梳理
java·spring·mvc
代码探秘者1 天前
【大模型应用】3.分块入门
java·后端·python·spring
回到原点的码农1 天前
Spring Data JDBC 详解
java·数据库·spring
一勺菠萝丶1 天前
Flowable + Spring 集成踩坑:流程结束监听器查询历史任务为空 & 获取不到审批意见
java·数据库·spring