栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不调用抽象祖先的@PostConstruct

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不调用抽象祖先的@PostConstruct

根据在JSR 318-拦截器1.2规范 的目标类声明的拦截器调用顺序
部分:

在目标类或其父类上声明的拦截器方法按以下顺序调用:

  • 如果目标类具有超类,则将调用在这些超类上定义的所有拦截器方法,首先是最普通的超类。
  • 目标类本身上的拦截器方法(如果有的话)被调用。

如果拦截器方法被另一个方法覆盖(无论该方法本身是否为拦截器方法),则将不会调用该方法。

这意味着在编写库/框架时,可以

@PostConstruct
在父类和子类中都使用lifecyle回调来实现可扩展性。

该机制在Camel CDI扩展中使用,该扩展

@PostConstruct
在https://github.com/astefanutti/camel-
cdi/blob/b6f52d91b247e36eefb6f3ecde61016d681d3535/impl/src/main/java/org/apache/
中声明带有生命周期回调的默认Camel上下文camel
/ cdi / CdiCamelContext.java#L37

可以由https://github.com/astefanutti/camel-
cdi/blob/b6f52d91b247e36eefb6f3ecde61016d681d3535/envs/se/src/main/java/org/apache/camel/camel/cdi/se/bean/CustomLifecycleCamelContext这样的用户扩展.java#L37声明其自己的

@PostConstruct
生命周期回调。

两者均按照指定的顺序由容器调用。

从设计的角度来看,这意味着您的方法是正确的。但是,由于Jersey依赖项注入基于HK2而不是CDI,并且依赖于类似的桥梁,

jersey-gf-cdi
因此在该级别可能会出现问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号