@Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        ReflectionUtils.doWithMethods(bean.getClass(), recurringJobFinderMethodCallback);
        return bean;
    }
@Test
    void beansWithMethodsAnnotatedWithRecurringAnnotationContainingPropertyPlaceholdersWillBeResolved() {
        new ApplicationContextRunner()
                .withBean(RecurringJobPostProcessor.class)
                .withBean(JobScheduler.class, () -> jobScheduler)
                .withPropertyValues("my-job.id=my-recurring-job")
                .withPropertyValues("my-job.cron=0 0/15 * * *")
                .withPropertyValues("my-job.zone-id=Asia/Taipei")
                .run(context -> {
                    context.getBean(RecurringJobPostProcessor.class)
                            .postProcessAfterInitialization(new MyServiceWithRecurringAnnotationContainingPropertyPlaceholder(), "not important");

                    verify(jobScheduler).scheduleRecurrently(eq("my-recurring-job"), any(JobDetails.class), eq(CronExpression.create("0 0/15 * * *")), eq(ZoneId.of("Asia/Taipei")));
                });
    }