微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理自定义注释

如何解决处理自定义注释

| 是否可以使beanfactoryPostProcessor检测到bean类是否具有使用自定义注释(例如,@ inject)进行注释的方法,并在这种情况下继续进行某种处理? 如果这不可能,您能否解释一下我如何访问Bean元数据并在beanfactoryPostProcessor中加以利用? 提前致谢。 编辑:我碰到了此链接,但是不确定是否是正确的解决方案,因为我听说使用反射会大大降低整体应用程序性能。     

解决方法

传递到postProcessBeanFactory()方法调用中的ConfigurableListableBeanFactory具有方法getBeanDefinition(String),从中可以获取该bean的类名。在这里,您可以执行Class.forName(String)并获取该类,然后可以检查其成员以获取注释。当然这个建议也使用Java Reflection。 您也可以尝试使用自己的自定义注释来注释每个要检查的类。然后,可以从ConfigurableListableBeanFactory调用getBeansWithAnnotation(Class)。这将返回一个从beanName到对应实例的映射。 或者,您可以自己看一下JavaDoc: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/ConfigurableListableBeanFactory.html     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。