Spring-boot如何在被调用的方法中使用自动装配的类属性

时间:2016-07-25 15:24:13

标签: spring spring-boot autowired spring-test

我的spring-boot应用程序中有以下类

MockHttpServletRequestBuilder

这里,propertiesClass实际上包含从application.properties文件中读取属性值的方法。我想对getMeSomeValue方法进行单元测试。我的单元测试课程如下:

public class ClassA {

    @Autowired
    PropertiesClass propertiesClass;

    public Integer getMeSomeValue(Integer someParameter) {
        // uses some methods of propertiesClass
    } 
}

当我运行单元测试时,我在getMeSomeValue方法中调用propertiesClass的方法时得到空指针异常。在Spring-boot中有没有办法让@Autowired工作?

2 个答案:

答案 0 :(得分:2)

而不是

ClassA classA = new ClassA();

这样做......

@Autowired
ClassA classA;

这样classA bean将在 Spring Container。

中可用

答案 1 :(得分:1)

在ClassA上调用新的构造函数不会注入有线的PropertiesClass,因为它不是由Spring制作的。

取而代之的是

@Autowired
ClassA classA;

确保在MyApplication.class中调用bean,这将使它们在上下文中可用,因为您没有使用组件扫描。