Grails开发随笔系列(三)覆盖spring bean
grails有个轻量级事件发布订阅插件叫falcone util,是很好很好的。。。
grails还有个查询插件叫searchable,也是很好很好的。。。
?
可这两个家伙碰到一起问题就来了。falcone util里把grails原来的sessionFactory给代理了,用的是spring?BeanFactoryPostProcessor。而searchable插件调用的compass库使用sessionFactory时直接把他当成其实现SessionFactoryImpl来用,结果世界不清净了。。。
?
好在我用falcone util只是想把发邮件等逻辑从service中分离,并不想监听hibernate那一大堆事件,所以falcone util对sessionFactory的黑客行为对我是没有意义的,可以去掉。直接改他的源码当然可以,不过这样我就要多维护一套源码。这很不好。
其实只要把falcone util放在spring里的那个BeanFactoryPostProcessor覆盖掉就好了,falcone util源码中这样写的
?
interceptableSessionFactoryPostProcessor(Object)?就把原来那个interceptableSessionFactoryPostProcessor覆盖掉了。世界清静了,偶也~~~