如何在方法体内进行注射?

时间:2013-07-09 17:51:13

标签: java java-ee

我有以下代码:

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?
    }
}

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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