我有以下代码:
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?
}
}
我知道如何使用上下文查找。我想知道是否有注释的注释方式。
答案 0 :(得分:2)
简短的回答是你做不到的。执行注入的代码无法查找方法的局部变量。另一方面,类字段可以使用核心java API中提供的类检查方法访问。
此外,注释参数只能是常量表达式。
答案 1 :(得分:0)
您可以为此目的使用Koin服务定位器。它支持方法内部的局部变量注入。