2011-04-17 84 views
2

是否有可能使BeanFactoryPostProcessor检测是否豆类有一个自定义的注释(@注入例如)注解的方法,并继续进行,如果是这种情况有一定的治疗?
如果这是不可能的,你能解释一下我是如何访问的豆元数据,并利用它在实现BeanFactoryPostProcessor?
在此先感谢。加工定制注释

编辑:我碰到这个link,不知道这是否是正确的解决方案虽然,因为我听说,使用反射大大降低整体应用性能。

回答

1

传递给postProcessBeanFactory()方法调用的ConfigurableListableBeanFactory有一个方法getBeanDefinition(String),可以从中获取该bean的类名。从这里你可以做的Class.forName(字符串),并获得类,然后你可以检查其成员为您诠释。当然这个建议也使用Java Reflection。

您也可以尝试标注要使用自己的定制标注检查每个类。从ConfigurableListableBeanFactory你可以调用getBeansWithAnnotation(类)。这将从beanName返回一个映射到相应的实例。

或者你可以看看的JavaDoc自己: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/ConfigurableListableBeanFactory.html

+0

感谢您的输入。 – Mehdi 2011-04-17 20:34:14