注入值注解

imi 中有一类注解,他们支持将值动态注入到注解属性中,当调用获取注解属性时,才实时计算并返回。

注解说明

@ConstValue

从常量中读取值

属性名称 说明
name 常量名
default 常量不存在时,返回的默认值

@ConfigValue

从配置中读取值

属性名称 说明
name 配置名,支持@app@currentServer等用法
default 配置名,支持@app@currentServer等用法 不存在时,返回的默认值

@Inject

对象注入,使用:App::getBean()

属性名称 说明
name Bean名称或类名
args Bean实例化参数

@RequestInject

对象注入,使用:RequestContext::getBean()

@Inject

@Callback

回调注解

属性名称 说明
class 类名,或者传入对象,比如可以使用 @Inject@RequestInject 再次值注入
method 方法名

用法示例

  1. /*
  2. * @Cacheable(
  3. * key="index:{page}",
  4. * ttl=10,
  5. * lockable=@Lockable(
  6. * id="index:{page}",
  7. * waitTimeout=999999,
  8. * ),
  9. * preventBreakdown=true,
  10. * )
  11. */

@DbInject

注入数据库对象

属性名称 说明
name 连接池名,如果为null则取配置@app.db.defaultPool
queryType 查询类型,影响读写分离逻辑。可选:QueryType::READ/QueryType::WRITE,默认为QueryType::WRITE

@RedisInject

注入Redis对象

属性名称 说明
name 连接池名,如果为null则取配置@app.redis.defaultPool

@PoolResource

注入连接池资源

属性名称 说明
name 连接池名