J'utilise InitializingBean pour initialiser les propriétés statiques dans une classe modale. Cet objet, je suis câblage automatique dans un serviceRunWith SpringJUnit4ClassRunner ne permet pas de charger l'application ApplicationContext avec InitializingBean
Quand j'écris un test de service, je jette l'erreur: Impossible de charger ApplicationContext
Config classe
public class AppConfig {
private String prop1;
protected void setProp1(String prop) {
this.prop1 = prop;
}
public String getProp1() {
return prop1;
}
}
PropertyIntilizer classe
public class PropertyIntializer implements InitializingBean {
@Autowired
private AppConfig appConfig;
@Override
public void afterPropertiesSet() throws Exception {
appConfig.setProp1("PROP");
}
}
Classe de service
@Service
public class Service {
@Autowired
private AppConfig appConfig;
public void doSomething(){
System.out.println(appConfig.getProp1());
}
}
TestClass
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { TestConfig.class })
public class ServiceTest {
@Autowired
private Service service;
@Test
public void testService(){
service.doSomething();
}
}
Cela donne une erreur: Impossible de charger ApplicationContext
Mais quand je retire Autowired AppConfig, cela fonctionne
Edit: TestConfig classe
@Configuration
@ComponentScan(basePackages = { "base.package" })
public class TestConfig {
}
ma les classes principales sont dans base.package.main et les classes de test dans base.package.test
S'il vous plaît nous montrer le code source pour 'TestConfig'. Sinon, nous ne pouvons pas vraiment vous aider. –
Ajout de code pour 'TestConfig' – warrior107
Pouvez-vous s'il vous plaît fournir la trace de la pile pour l'erreur" Failed to load ApplicationContext "que vous rencontrez? –