注入值注解

优质
小牛编辑
137浏览
2023-12-01

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

注解说明

@ConstValue

从常量中读取值

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

@ConfigValue

从配置中读取值

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

@Inject

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

属性名称说明
nameBean名称或类名
argsBean实例化参数

@RequestInject

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

@Inject

@Callback

回调注解

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

用法示例

/*
 * @Cacheable(
 *   key="index:{page}",
 *   ttl=10,
 *   lockable=@Lockable(
 *     id="index:{page}",
 *     waitTimeout=999999,
 *   ),
 *   preventBreakdown=true,
 * )
 */

@DbInject

注入数据库对象

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

@RedisInject

注入Redis对象

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

@PoolResource

注入连接池资源

属性名称说明
name连接池名