作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 Kotlin BeanDefinitionDsl 将 bean 添加到上下文时,似乎不会调用 @PostConstruct 方法。
这在我自己的项目中发生在我身上,但为了创建一种简单的方法来重现它,这就是我所做的。
因此,您所需要做的就是 fork 我的存储库并执行 gradle 运行。
我的问题是:
如果您不想拉取我的存储库,这里有有关我所做操作的更多详细信息。我将其添加到 UserHandler 类中:
@PostConstruct
fun afterPropertiesSet() {
System.out.println("AFTER PROPERTIES SET CALLED")
}
以及导入和 Gradle 依赖项。
通过调用 beans DSL 中的 bean 方法将 UserHandler bean 拉入上下文,如下所示:
fun beans() = beans {
bean<UserHandler>()
// ...
}
这被带入上下文:
beans().initialize(context)
最佳答案
在 Application
类中实例化的
GenericApplicationContext
不支持开箱即用的 @PostContruct
。为了使其正常工作,您应该使用 AnnotationConfigApplicationContext
代替,并在 Gradle 构建中删除 spring-aop
的排除。
关于spring - 使用 Kotlin BeanDefinitionDsl 时未调用 @PostConstruct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798347/
当使用 Kotlin BeanDefinitionDsl 将 bean 添加到上下文时,似乎不会调用 @PostConstruct 方法。 这在我自己的项目中发生在我身上,但为了创建一种简单的方法来重
我是一名优秀的程序员,十分优秀!