随着了解得越多,spring给人的惊喜也越多,初步学习了关于二者整合开发,主要的资料是夏昕的spring文档以及spring官方例子jpetstore。把心得在此纪要一下。
从架构上讲,spring作为轻量级Ioc容器无疑要位于高位,所以iBatis现在只需要致力于完成持久层的sql-object映射工作,其他的事就由spring来装配好了。
首先是连接池,在spring中可以配置一个dataSource-bean供使用,现成的轮子很多。
iBatis中的DaoManager作的两大工作:dao事务管理,dao接口与实现的解藕,这正是spring的强项,spring的事务处理使用了AOP,可以配置到方法级(支持正则表达式),指定哪些类的哪些方法需要事务处理,不管你是dao还是service,通通可以自由地在这儿指定,根本不会侵入你所写的类,如果是EJB的话,会强迫你去实现容器所规定的EJB接口。
至于缓存这个轮子,ibatis造得不错,我们就用它了。在ibatis中,cacheModelsEnabled默认是true的,别忘了在写具体的pojo.xml时,作缓存有关的配置工作。
从架构上讲,spring作为轻量级Ioc容器无疑要位于高位,所以iBatis现在只需要致力于完成持久层的sql-object映射工作,其他的事就由spring来装配好了。
首先是连接池,在spring中可以配置一个dataSource-bean供使用,现成的轮子很多。
iBatis中的DaoManager作的两大工作:dao事务管理,dao接口与实现的解藕,这正是spring的强项,spring的事务处理使用了AOP,可以配置到方法级(支持正则表达式),指定哪些类的哪些方法需要事务处理,不管你是dao还是service,通通可以自由地在这儿指定,根本不会侵入你所写的类,如果是EJB的话,会强迫你去实现容器所规定的EJB接口。
至于缓存这个轮子,ibatis造得不错,我们就用它了。在ibatis中,cacheModelsEnabled默认是true的,别忘了在写具体的pojo.xml时,作缓存有关的配置工作。