@ContextConfiguration로드 및 통합 테스트를위한 ApplicationContext를 구성하는 방법을 결정하는 데 사용되는 클래스 수준의 메타 데이터를 정의 봄 문서에이 문장을 읽어 보시기 바랍니다.
특히 @ContextConfiguration은 컨텍스트를로드하는 데 사용되는 응용 프로그램 컨텍스트 리소스 위치 또는 주석이있는 클래스를 선언합니다.
그런 다음 나는 그러나 봄이 빈 정의를로드 할 수 없습니다, 클래스의 상단에있는 @ContextConfiguration을 넣어 주 클래스 (안 테스트 클래스)에서 응용 프로그램 컨텍스트를로드하려고합니다.
AppJavaBasedConfig는
@ContextConfiguration(classes=AppJavaBasedConfig.class)
public class App {
@Autowired
private IStringUtil stringUtil;
public static void main(String[] args) {
// ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaBasedConfig.class);
// App app = context.getBean(App.class);
App app = new App();
app.stringUtil.lower("AAA");
}
}
@Configuration
public class AppJavaBasedConfig {
@Bean
public IStringUtil stringUtil() {
return new StringUtil();
}
@Bean
public App app() {
return new App();
}
}
홈페이지 그것은 NullPointerException이 발생합니다.
그래서 메인 클래스에서이 주석을 사용할 수 있습니까?
@Component
public class App {
@Autowired
private IStringUtil stringUtil;
@PostConstruct
public void init() {
stringUtil.lower("AAA");
}
}
@ContextConfiguration은 통합 테스트에서 컨텍스트를로드하기위한 것입니다. 당신은 스테레오 타입 어노테이션이 아닌 다른 곳에서는 사용하지 말아야합니다. – Barath