启用注解时HibernateDaoSupport遇到的问题
最近看了sring2.5的注解,感觉真是超级方便,便一定要用到项目里来,因为本来项目里用的就是spring2.5,所以想必应该没问题。但是首先遇到的问题就是HibernateDaoSupport引起的,因为项目中所有的dao类都是继承自自己重构的一个BaseDao,里面是一些比较通用的增删改查方法,而BaseDao又是从HibernateDaoSupport继承的。好,问题来了。原来的配置方法是把BaseDao和业务的dao类都配在spring的配置文件里面,并且都是要单独配置sessionFactory这个property的:
?用@component的方式替换掉原来的这些配置,直接报
?新问题又来了,项目启动的时候报注入类型不匹配,原来BaseDao类给自动代理了,SecondDao中拿到的是一个代理类。想象SecondDao确实比较多余,就想能不能干掉不用它。突然想起来能不能直接把HibernateDaoSupport重新编辑一下,直接在HibernateDaoSupport中注入hibernateTemplate这个变量,于是:
@Autowiredpublic void setSessionFactory0(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory);}
应该会以by_Type的方式注入的.
不错,我也是这样做的,但是劝你还是写一个dao层超类,在这个超类里这样写,这样是要写一次,所有的子类都能用了
行得通但不可取。