class StartupReporterBeanPostProcessor implements BeanPostProcessor {

    private final StartupReporter startupReporter;

    public StartupReporterBeanPostProcessor(StartupReporter startupReporter) {
        this.startupReporter = startupReporter;
    }

    @Override
    @Nullable
    public Object postProcessBeforeInitialization(Object bean, String beanName)
                                                                               throws BeansException {<FILL_FUNCTION_BODY>}
}

        if (bean instanceof StartupReporterAware) {
            ((StartupReporterAware) bean).setStartupReporter(startupReporter);
        }
        return bean;
    
<no_super_class>