首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

打包Hibernate成Bundle

2012-08-25 
封装Hibernate成Bundle为什么要封装?1,目前Hibernate没有提供Hibernate Bundle,只能自己封装.2,封装第3方j

封装Hibernate成Bundle
为什么要封装?
1,目前Hibernate没有提供Hibernate Bundle,只能自己封装.
2,封装第3方jar包是开发osgi程序的必备技能.

扩展模式(extender pattern):
介绍在此:http://felix.apache.org/site/extender-pattern-handler.html
不要被它高深的名字吓倒,简单地说就是一个Bundle负责监听,查看其他Bundle是否符合某种特征,如果符合,则对该bundle怎么怎么样;如果不符合,又对bundle怎么怎么样.
我们把hibernate.cfg.xml文件放在felix根目录下的cfg目录,把实体的映射文件放在各自实体bundle的mappingresource目录下.1个bundle负责监听其它bundle的安装和卸载,当bundle安装时,查看它的MANIFEST.MF中是否有HibernateEntity-Class属性,如果有,则载入mappingresource目录下的映射文件.

构建工具maven
  请使用maven吧!不要因为ant已经很强大而抗拒它. Felix提供了maven-bundle-plugin 这个  Bundle来构建其它bundle.它内部是使用了具有osgi瑞士军刀之称的bnd.

Action:
我们决定分装3个Bundle:
  1,Hibernate Lib Bundle.里面封装了Hibernate类库.
  2,Hibernate Service Bundle.该Bundle提供获得Session服务.
  3,Hibernate EntityRegister Bundle.该Bundle负责监听其他Bundle,使用了扩展模式.

封装Hibernate Lib Bundle
  把所有Hibernate相关的jar包统统放进去吧(明显不合理,但简单可行).Export一些别人需要使用的包吧.
 
封装ibernate Service Bundle
  只需提供一个接口即可.









1 楼 yusunnya 2012-03-21   能把这3个bundle提供下载吗?  谢谢@!~~ 2 楼 dengquanhao 2012-04-19   楼主,这个是否可以提供bundle示例呢?不甚感激啊。邮箱:dengquanhao@163.com 3 楼 icecream0 2012-05-08   我一直在纠结hibernate如何以扩展点的方式运行在felix中,但是一直找不到这种机制!楼主辛苦了,这篇文章让我茅塞顿开啊!只是对IPOJO了解很少,而且例子难找!不知可否发一份源码?感谢至极啊!icecream0211@gmail.com

热点排行