首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

springmvc camel mybatis集成范例及分析

2013-03-28 
springmvc camel mybatis集成实例及分析最近在学习camel,公司之前做过的项目使用到了camel进行了很多工作。

springmvc camel mybatis集成实例及分析
最近在学习camel,公司之前做过的项目使用到了camel进行了很多工作。就连数据库的操作也是通过camel来完成的。至于用camel来操作数据库有什么优点,目前就我自己的体会来说,利用camel能简化CRUD操作service层的代码。没用camel以前,各个对象的CRUD操作我都会有对应的service去处理。即使这些service很多都只是简单地继承一个CrudServcie然后用泛型限制一下该service处理的实体对象。这样service的接口和实现类看上去很多,但是重复率极高。如果使用了camel,那么我们就可以用camel来写一个通用的service,这样不管你是什么实体类的操作,只要传入类型和要调用的方法名就可以了。由于涉及到公司机密,所以我不会贴出成熟的源代码,但是我可以提供一个自己的列子。我想只要从这个列子出发,稍作改进就能达到上文所提的效果。
例子的架构是这样的:springmvc camel mybatis依赖由maven来管理,其pom.xml的内容请下载列子源代码查看。springmvc的配置就不用贴出来了,随处可见。这里重点讲一下spring跟配置文件里的一些配置项目,尤其是下面这一段:

<bean id="mybatis1" class="org.apache.camel.component.mybatis.MyBatisComponent">    <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
那么我是不是可以通过"mybatis1:insert?statementType=Insert"这样来路由呢?是不是试过才知道,写完我就去试一试,camel官方的uri支持范围里是绝对没有mybatis1这种东西的。
现在回到文章开始的问题来,我们如何通过camel来做一个统一的service层呢?很简单,我们只需要将要调用的方法名,body里要路由到数据库的对象,通过参数的方式传递进来不就可以容纳一切变化了吗?从此以后我们只需要通过数据表生成以下mapper.xml,再谢谢特殊的sql就好了。只要是数据库的操作,我们都可以通过camel实现的一个superService类搞定。最后附上整个例子的源代码供童鞋们下载交流。项目在我的资源栏目里,当然是免积分的了。

热点排行