|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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网页编程程序员是操作员,呵呵。 |
|