Gluon默认采用的CDI机制是什么?其自带DI功能如何实现?
Gluon 自带 DI 实现与使用说明
- 底层实现:你当前使用的 Gluon 内置 DI 是 Gluon Mobile 组件自带的轻量实现,没有基于 Weld,也没有完整实现 Java EE CDI 规范,只提供了最基础的
@Inject注入、单例托管、@PostConstruct初始化钩子能力,专门做了移动端轻量化适配,所以你查 CDI 相关文档和 Weld 相关用法都不适用。 - 关于 Gluon Ignite:它是官方提供的第三方 DI 框架适配层,作用是帮你快速集成 Spring、Guice 等全功能 DI 框架,和自带的轻量 DI 能力不冲突,如果你后续需要更复杂的 DI 能力可以选择使用,不需要的话直接用内置实现即可。
- 获取单例 Bean 供非托管代码调用的方法:直接使用 Gluon 内置的工具类方法即可,
com.gluonhq.attach.util.Services.get(目标Bean类.class),这个方法支持在任意位置调用,包括静态代码块、非托管类的实例方法里,都可以拿到托管的单例实例。 - 自定义类托管方法:如果需要自己写的类被 DI 上下文托管,直接给类加上
@Singleton注解即可,Gluon 应用启动时会自动扫描注册,不需要额外配置。 - 资料查询:这个轻量 DI 属于 Gluon 内置的基础能力,没有单独的公开文档,相关用法都集成在 Gluon Mobile 开发文档的基础功能章节里。
内容的提问来源于stack exchange,提问作者Javateer
相关产品推荐
相关产品推荐

