仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 671|回复: 9
打印 上一主题 下一主题

[学习教程] 来看Hibernate的JNDI绑定剖析

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:28:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。
Hibernate的JNDI称号绑定是在net.sf.hibernate.impl.SessionFactoryObjectFactory程序内里完成的,我来剖析一下Hibernate的绑定JNDI的历程:
我们取得SessionFactory通常为如许写代码:
Configurationconf=newConfiguration().addClass(Cat.class);
SessionFactorysf=conf.buildSessionFactory();
起首是newConfiguration()创立一个Configuration,在这个机关器内里举行设置文件(hibernate.properties)的读取事情,然后保留到一个Properties对象内里往,和JNDI相干的是这个属性:
hibernate.session_factory_namehibernate/session_factory
接着挪用buildSessionFactory()办法,该办法反省一下设置信息,然后挪用SessionFactoryImpl的一个机关器。在机关器内里注重上面两行代码:
name=properties.getProperty(Environment.SESSION_FACTORY_NAME);
SessionFactoryObjectFactory.addInstance(uuid,name,this,properties);
挪用了SessionFactoryObjectFactory的addInstance办法,而且把本身(SessionFactory的实例)作为参数传送。最初在addInstance办法能够看到以下代码:
Contextctx=NamingHelper.getInitialContext(properties);
NamingHelper.bind(ctx,name,instance);
instance就是SessionFactory的实例,经由过程读源代码,能够分明的看到Hibernate是在conf.buildSessionFactory()的时分经由过程一系列类办法挪用,把创立的SessionFactory实例绑定到设置文件(hibernate.properties)中hibernate.session_factory_name属性指定的称号上的,因而可见Hibernate本身是具有JNDI的静态绑定功效的。可是Hibernate必要取得一个SessionFactory实例用于绑定,而这个SessionFactory实例必要我们写代码举行事后创立,而且必需包管该历程要在一切别的要从JNDI上取得SessionFactory实例的程序之前完成。
因而关于任何AppServer来讲,我们都不用往管JNDI称号的绑定历程,只必要包管事后创立一个SessionFactory实例出来就够了,剩下的事情Hibernate会做的。那末怎样确保预创立SessionFactory实例呢,假如是Servlet,能够设置一个初始化的Servlet,只需把
Configurationconf=newConfiguration().addClass(Cat.class);
SessionFactorysf=conf.buildSessionFactory();
如许的代码加出来就能够了。假如是包括EJB的的庞大的J2EE使用,大概必要依托AppServer的功效来包管预创立SessionFactory实例。

net网页编程程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net网页编程比。java程序员都是代码完成的,所以java程序员常戏称.net网页编程程序员是操作员,呵呵。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-21 07:44:05 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-24 10:26:48 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-1 05:56:51 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
柔情似水 该用户已被删除
5#
发表于 2015-2-7 01:20:42 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-19 07:32:01 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
再现理想 该用户已被删除
7#
发表于 2015-3-6 13:52:56 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
乐观 该用户已被删除
8#
发表于 2015-3-13 01:09:34 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
简单生活 该用户已被删除
9#
发表于 2015-3-20 08:38:07 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
变相怪杰 该用户已被删除
10#
发表于 2015-4-8 22:55:26 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 18:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表