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"
Ensuite j'essaie de récupérer le context de l'application via cette classe et d'instancier un bean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Mais j'ai un NPE (ici ligne 10) dont je ne comprends pas la cause
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ); } }
Ma classe client implémente, où "Client" est une Entity
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Exception in thread "main" java.lang.NullPointerException at com.projet.config.MyProjetApplication.main(MyProjetApplication.java:20)
Merci de toute aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ); } }
Partager