2014-10-07 3 views
0

Огляделись много, но я не смог понять подход или если это возможно; вот в чем вопрос, любые советы/советы будут очень полезны.Весенние инъекции и аннотации

Возможно ли иметь аннотацию метода, например, @TestAnnotation, которая может использоваться следующим образом?

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

"someId" является оберткой "AnObj" класса; 'id' - это пример "someId". И все, что передается в 'element', должно приниматься как параметр или элемент конфигурации, который будет использоваться при создании экземпляра "someId" и присвоении его 'id'.

Спасибо и привет

ответ

1

А почему не просто использовать АОП и делать все, что вам нужно в методе @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

Thanks @cowls; попробует. Но в таком подходе «id» в @TestAnnotation не будет иметь никакого значения, не так ли? Поэтому, пожалуйста, поправьте меня, если я что-то упустил, но похоже, что я не могу заставить его работать, как я себе это представлял. – 5122014009

+0

@Sayury Возможно, значение id можно было бы использовать для поиска AnObj в аспекте и назначения его параметру? т.е. вы можете запустить это в аспекте: 'AnObj anObj = id.getAnObj();' – cowls