当使用Kotlin BeanDefinitionDsl将bean添加到上下文中时,似乎不会调用@PostConstruct方法。 这发生在我自己的项目中,但创建一个简单的方法来重现它,这就是我所做的。 我分叉使用Kotlin DSL的Spring示例https://github.com/sdeleuze/spring-kotlin-functional 我添加了@PostConstruct到UserHandler类。 (更多细节在下面) 我把结果推到这里: https : //github.com/benjishults/spring-kotlin-functional 所以你所要做的就是分叉我的回购,并做一个gradle运行。 我的问题是: 我不应该期望@PostConstruct被调用,因为我把这个类作为一个bean来使用吗? 我错过了一个步骤? 这是一个spring的bug? 如果你不想拉我的回购,这里是更多的细节,我做了什么。 我将其添加到UserHandler类: @PostConstruct fun afterPropertiesSet() { System.out.println(“AFTER PROPERTIES SET CALLED”) } 以及导入和Gradle依赖。 UserHandler bean被拉入到上下文中,使用一个调用bean beans的bean方法,如下所示: fun beans() = beans { bean() // … } 这是带来的上下文: beans().initialize(context)