Spring学习之旅-组件支撑篇(1)

62 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情


写在前面

作为一个java程序员,spring应该都不会陌生了吧?

对于大部分程序员来说,spring的入门,估计跑起一个框架,熟悉一下开发的流程,基本上就掌握spring框架的开发了。

随着开发年限的变大,我们不能仅仅是掌握到这个地步,更应该深入的学习spring框架。

这不,接下来就是spring框架的学习之旅了,希望可以帮助到大家。

一、整合Junit

1.1 单元测试问题

在测试类中,每个测试方法都有以下两行代码:


ApplicationContext Ctx = new ClasspathXmlApplicationContext("springStudy.xml");
UserService service = context.getBean(UserService.class);
  • 我们使用单元测试要测试的是业务问题,以上两段代码明显不是业务代码。
  • 但是这两行代码的怍用是获取容器,如果不写的话,直接会提示空指针异常,所以又不能轻易删掉。

1.2 解决思路分析

针对上述问题,我们需要的是程序能自动帮我们创建容器。一旦程序能自动为我们创建spring 容器,我们就无须手动创建了,问题也就解决了。

但紧接的问题就是junit它本身不认识spring ,更无法帮助创建Spring容器了,不过好在Junit给我们暴露了一个注解( @RunWith) , 可以让我们替换掉它的运行器。

这时,我们需要依靠 spring 框架,因为它提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只需要告诉它配置文件在哪就行了。

1.3 具体实现

  • 第一步:添加依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
  • 第二步:通过@RunWith注解, 指定spring的运行器
spring的运行器是SpringJunit4ClassRunner
  • 第三步: 通过@ContextConfiguration注解,指定spring运行器需要的配置文件路径

  • 第四步:通过@Autowired注解给测试类中的变量注入数据

@RunWith(SpringJunit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationXml.xml")
public class TestStringJunit {

    @Autowired
    UserService userService;

    @Test
    public void  saveUser(){
        userService.saveUser();
    }
}

好了,以上就是Spring学习之旅-组件支撑篇(1) 的全部内容了。

今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^

如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!

image.png