2014-10-07 246 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