2013-07-09 1 views
1

나는 다음과 같은 코드가 있습니다방법 몸 안쪽으로 주입 할 수 있습니까?

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

내가 컨텍스트 검색을 사용하는 방법을 알고있다. 주석을 첨부 할 방법이 있는지 알고 싶습니다.

+3

동적 URL을 결정하는 조회/팩토리 빈을 삽입 할 수 있습니까? – JustinKSU

+0

주석으로는 불가능하다고 생각합니다. 이해가되지 않습니다. 왜 그렇게해야합니까? 팩토리 클래스를 생성하고 간단한 메소드 호출로 언제든지 ds를 얻을 수 있습니다. –

답변

2

짧은 대답은 할 수 없습니다. 메소드의 로컬 변수를 검색하기 위해 주입을 수행하는 코드를위한 방법은 없습니다. 한편, 클래스 필드는 코어 Java API에서 사용할 수있는 클래스 검사 메소드를 사용하여 액세스 할 수 있습니다.

또한 주석 매개 변수는 상수 표현식 일 수 있습니다.

관련 문제