我是Spring Boot的新手,我正在为REST Api编写Junit。因此,运行Junit的类需要很多注释。因此,我计划将所有注释放入一个自定义注释中,并在Junit类中使用该自定义注释。但是现在我的Autowire停止工作了。
我尝试创建自定义注释,并在Junit类中使用了它 但现在@Autowire注释已停止工作。
下面是自定义注释的代码:
@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
@Documented
@Category(UnitTest.class)
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {AptDataApiApplicationRepo.class })
@TestPropertySource("classpath:application-test.properties")
public @interface RepoTestConfig {
}
//我的JUnit类代码
@RepoTestConfig
public class HolidayRepoTest {
@Autowired
private IHolidayRepo iHolidayRepo;
}
//在这里,当spring上下文试图起床时,spring抛出异常
即将到来的异常是:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.demo.repository.IHolidayRepo' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
@注意:当我将所有批注放入HolidayRepoTest类中时,一切都很好。