再论IBatisNet + Castle进行项目的开发

     随着项目的进展,Castle和IBatisNet给我的惊喜更多。Com+很重,不需要分布式的中小项目慎用,NHibernate虽好,NHibernate的2005-9-20发布了最新版本1.0-rc1,缺少高水平的OO设计师,项目组程序员水平参次不齐 ,应用Castle + IBatisnet大家不会再把精力浪费到数据访问,事务处理,主键生成等地方了,可以集中精力进行业务组件的编写。项目的进展很顺利。

    从架构上讲,Castle作为轻量级Ioc容器无疑要位于高位,所以iBatisNet现在只需要致力于完成持久层的sql-object映射工作,其他的事就由Castle来装配好了。

      iBatisNet中的DaoManager作的两大工作:dao事务管理,dao接口与实现的解藕,Castle的事务处理使用了是Castle的扩展单元,可以配置到方法级,用法类似于Com+,需要对该类设置声明性事务属性以确定其事务性行为。指定哪些类的哪些方法需要事务处理,不管你是dao还是service,通通可以自由地在这儿指定,根本不会侵入你所写的类,如果是Com+的话,会强迫你去实现Com+的ServicedComponent。

     IbatisNet的缓存非常不错,我们需要用好它了。在IbatisNet中,cacheModelsEnabled默认是true的,别忘了在写具体的po.xml时,作缓存有关的配置工作。不过具体用哪一种(MEMORY  LUR  FIFO  OSCACHE)容量设多大,都得根据项目的实际情况来定,我通常首选LUR。正确设定缓存的Flush语句,杜绝缓存中脏数据产生的可能。缓存使用前提是,系统中对表的读写一定要都通过ibatisNet来进行,也就是封闭的。   

    动态SQL的确是个强点。熟悉后感觉很不错。IBatisNet中所有的DAO方法都只传一个值对象,复杂查询当然也不例外。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

MonoDevelop 3.0——更好的代码完成、性能与快速修复建议

近日,MonoDevelop 3.0发布了,该版本提供了一些新特性,专注于性能、开发者生产力,特别针对C#开发者。 该版本主要的变化在于MonoDevelop的...

20950
来自专栏不二小段

Python自动统计微博抽奖中奖男女比例(附代码)

今天来写一个自动计算微博抽奖男女比例的代码,很早就应该发这篇了,只是不想蹭热点(才不是拖更)。

17930
来自专栏施炯的IoT开发专栏

Windows Phone Developer Tools 7.1 Beta 新特性--使用Additional Tools

    5月24号晚上兴奋地等待,在浏览器缓冲了近30分钟后,我终于看到了芒果更新的Webcast,虽然只是看了一个结尾。第二天通过小指的围脖收到风声,芒果更新...

19990
来自专栏.NET开发者社区

(码友推荐)2018-07-31 .NET及相关开发资讯速递

3.Announcing Xamarin.Android 9.0 (P) Preview

14140
来自专栏铭毅天下

抢先 | 支持sql的Elasticsearch6.3全景概览

像操作Mysql一样使用Elasticsearch,缩减DSL的学习成本,更多人爱上ES的特性。

25240
来自专栏Crossin的编程教室

【Python 第4课】输入

Hi~Crossin又来了。 可以用编程语言让计算机按你说的指令做事情之后,大家是不是有些跃跃欲试呢?别着急,先回顾一下我们之前几节课。我们到现在一共提到了三种...

34870
来自专栏.NET开发者社区

(码友推荐)2018-07-12 .NET及相关开发资讯速递

1.Optimization Thresholds – Grouping and Aggregating Data, Part 4

14030
来自专栏一个会写诗的程序员的博客

《Kotlin极简教程》第1章 Kotlin简介

我们这里讲的Kotlin,就是一门以这个Котлин岛命名的现代程序设计语言。它是一门静态类型编程语言,支持JVM平台,Android平台,浏览器JS运行环境,...

10420
来自专栏逍遥剑客的游戏开发

XACT基本概念

10930
来自专栏哲学驱动设计

CQRS讨论

今天和同事一起讨论了CQRS(Command Query Responsibility Segregation),过程中,我产生了一些疑问,先记录在这里,以后有...

18970

扫码关注云+社区

领取腾讯云代金券