gpt4 book ai didi

java - 多个 PostConstruct 方法?

转载 作者:太空狗 更新时间:2023-10-29 22:46:17 25 4
gpt4 key购买 nike

它在 Java's documentation 中说PostConstruct 页面

Only one method can be annotated with this annotation

但我只是尝试使用 PostConstruct 注释独立应用程序的三个方法。没有编译错误,并且三个都被顺利调用和执行。

那我错过了什么?什么样的类可以和不可以存在多个PostConstruct注解?

最佳答案

是的,Spring 似乎没有遵循这个限制。我找到了处理这个注解的代码是InitDestroyAnnotationBeanPostProcessor,具体方法是:

public void invokeInitMethods(Object target, String beanName) throws Throwable {
Collection<LifecycleElement> initMethodsToIterate =
(this.checkedInitMethods != null ? this.checkedInitMethods : this.initMethods);
if (!initMethodsToIterate.isEmpty()) {
boolean debug = logger.isDebugEnabled();
for (LifecycleElement element : initMethodsToIterate) {
if (debug) {
logger.debug("Invoking init method on bean '" + beanName + "': " + element.getMethod());
}
element.invoke(target);
}
}
}

所以,spring支持多PostConstruct

关于java - 多个 PostConstruct 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com