2

我有以下代码:

class Foo {
    @Resource(lookup=url)
    private DataSource ds;
}

但它url是动态的,将被加载到方法体中:

class Bar {
    public static void main(String[] args) {
        String url = xxx;
        DataSource ds;
        //How to inject the datasource using Annotation?
    }
}

我知道如何使用上下文查找。我想知道是否有任何注解的方式注入。

4

2 回答 2

2

简短的回答是你不能。执行注入的代码无法查找方法的局部变量。另一方面,可以使用核心 java API 中可用的类检查方法访问类字段。

此外,注解参数只能是常量表达式。

于 2013-07-09T18:15:10.833 回答
0

为此,您可以使用Koin服务定位器。它支持方法内部的局部变量注入。

于 2020-09-22T04:15:49.660 回答