我正在使用Spring Boot创建一个微服务,一切都很好,除了一些小麻烦 .

在我的测试类中自动装配,我在@Autowired注释上收到以下警告:

必须在有效的spring bean中定义自动成员(@ Component / @ Service等)检查自动连线成员是否在有效的Spring bean中定义(@Component | @Service | ...) .

这是使用以下测试类

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class MyRecordTest {

    public static final String NUMBER = "ABC/123456";

    @Autowired
    private MyFactory factory;

    @Autowired
    private Marshaller marshaller;

    ...
}

我的应用程序配置类定义为

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public Marshaller getMarshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setPackagesToScan("com.my.classes");
        return marshaller;
    }
}

和MyFactory有@Component注释:

@Component
public class MyFactory {
    ...
}

我该如何解决这个问题?

另外,像拇指一样站立,我的应用程序中唯一未覆盖的行是public static void main方法中的SpringApplication.run行:

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

如何覆盖或忽略此问题?