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 : 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;
    }
 
}
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
 
@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 : 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)
Ma classe client implémente, où "Client" est une Entity

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 );
    }
 
}
Merci de toute aide