Java 如何在方法体内进行注射?
我有以下代码:Java 如何在方法体内进行注射?,java,Java,我有以下代码: 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 Ann
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?
}
}
我知道如何使用上下文查找。我想知道是否有任何带注释的注入方法。简而言之,您不能。执行注入的代码无法查找方法的局部变量。另一方面,可以使用核心JavaAPI中可用的类检查方法访问类字段
此外,注释参数只能是常量表达式 您可以为此使用服务定位器。它支持在方法内部注入局部变量。您可以注入一个确定动态URL的查找/工厂bean吗?我认为这是不可能的,因为注释没有意义,为什么需要这样做?创建一个工厂类,并通过简单的方法调用随时获取ds。