instantiation du contexte de Spring dans une application SpringBoot
Bonjour tous,
Je développe une application basé sur SpringBoot. J'aimerai pouvoir instancier des Beans de l'application pour faire quelques tests. Après quelques recherches j'ai vu qu'on peut le faire grâce à la classe "ApplicationContextProvider" qui implémente "ApplicationContextAware"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
@Component
public class ApplicationContextProvider implements ApplicationContextAware {
@Autowired
private ApplicationContext applicationContext;
@Override
public void setApplicationContext( ApplicationContext applicationContext ) throws BeansException {
this.applicationContext = applicationContext;
}
public ApplicationContext getContext() {
return applicationContext;
}
} |
Ensuite j'essaie de récupérer le context de l'application via cette classe et d'instancier un bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
@SpringBootApplication
public class MyProjetApplication {
public static void main( String[] args ) {
SpringApplication.run( MyProjetApplication.class, args );
ApplicationContextProvider provider = new ApplicationContextProvider();
ApplicationContext ctx = provider.getContext();
ClientMetierImlp clientMetierImlp = ctx.getBean( ClientMetierImlp.class );
Client client = new Client( "CC1", "A" );
clientMetierImlp.saveClient( client );
}
} |
Mais j'ai un NPE (ici ligne 10) dont je ne comprends pas la cause
Code:
1 2 3
|
Exception in thread "main" java.lang.NullPointerException
at com.projet.config.MyProjetApplication.main(MyProjetApplication.java:20) |
Ma classe client implémente, où "Client" est une Entity
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@Service
public class ClientMetierImlp implements ClientMetier {
@Autowired
ClientRepository clientRepository;
@Override
public Client saveClient( Client client ) {
return clientRepository.save( client );
}
} |
Merci de toute aide