2014-10-07 191 views
0

已經環顧了很多,但無法找出一種方法,如果它甚至是可能的;這裏是問題,任何方向/建議的意見將是非常有幫助的。彈簧注射和註釋

是否有可能有方法註釋說@TestAnnotation可以如下使用?

@TestAnnotation(element="something" id="someId") 
public void someMethod() { 
    AnObj anObj = id.getAnObj(); 
} 

"someId"是圍繞"AnObj"類的包裝; 'id'"someId"的一個實例。並且傳遞給'element'的任何內容都將被接受爲參數或配置元素,用於創建"someId"的實例並將其分配給'id'

感謝和問候

回答

1

而且你爲什麼不單純使用AOP,做所有你在@Before方法需要

http://www.journaldev.com/2583/spring-aop-example-tutorial-aspect-advice-pointcut-joinpoint-annotations-xml-configuration 
1

它改成這樣:

@TestAnnotation(element="something" id="someId") 
public void someMethod(Object something, AnObj anObj) { 

} 

然後你可以設置創建一個方面來攔截具有該註釋的方法,並在調用之前將必要的對象分配給該方法的參數。

+0

謝謝@cowls;會嘗試一下。但是在這種方法中,@TestAnnotation中的'id'實際上沒有任何意義,對吧?所以,如果我錯過了某些東西,請糾正我,但是看起來我無法讓它工作,就像我想象的那樣。 – 5122014009 2014-10-07 08:37:58

+0

@Sayury也許可以使用id的值在方面查找AnObj並將其分配給參數?即你可以在方面運行這個:'AnObj anObj = id.getAnObj();' – cowls 2014-10-07 08:39:39