code: public static void run(final String[] args, final BeanRepositoryConfigurator ...configurators) {
  
          validate(args, configurators);
  
          final BeanRepository beanRepository = buildAndConfigureBeanRepository(args, configurators);
  
          final ApplicationEventBus eventBus = beanRepository.getBean(ApplicationEventBus.class);
          eventBus.fireEvent(new ApplicationStartedEvent());
  
          Runtime.getRuntime().addShutdownHook(new Thread(() -> {
              eventBus.fireEvent(new ApplicationShutdownEvent());
          }));
      }
docs: Startup initialisation of the BeanRepository. After the BeanRepository was initialised with
  the given configurator classes, a {@link ApplicationStartedEvent} is thrown. Use this event
  as starting point for the code of your application.
  
  @param args the program arguments
  @param configurators the configurator classes, which provides the beans to the repository.