Skip to content

Bean标识

系统会为每一个 bean class 自动分配一个标识,格式如下:

bash
{moduleName}.{sceneName}.{beanName}

比如,模块 home-base 提供了一个 Service bean:ServiceMenu。那么该 bean 对应的标识为:home-base.service.menu

全局Bean

为了进一步简化 Bean 的使用,Vona 提供了全局 Bean 的概念。如果一个 Bean class 的 sceneName 值是bean,那么这个 bean class 就是全局 Bean

全局 Bean 的 Bean 标识就是beanName

例如,模块 a-jwt 提供了一个全局 Bean:jwt。那么,这个全局 Bean 的标识就是jwt

基于Bean标识注入的优点

在跨模块注入 bean 时,我们不建议直接基于Class类型注入,而是基于Bean标识注入。基于 Bean 标识注入有以下优点:

  1. 避免出现循环引用出错的问题:在复杂的业务场景中,经常会出现多个 Bean 之间相互引用的情况。基于 Bean 标识注入可以非常直观的支持循环引用的场景,不会出现错误提示,没有任何心智负担

基于 MIT 许可发布