注入值注解

    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连接池名