不帅 发表于 2015-1-18 11:39:27

JAVA网站制作之一个毗连池的例子(来自JIVE)(6)

你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。//文件:PropertyManager.java

//这个类实在没甚么用了,能够往失落,但必要往失落后面几个类中对这个类的援用。
packagecom.qingtuo.db.pool;

importjava.util.*;
importjava.io.*;

/**
*ManagespropertiesfortheentireJivesystem.Propertiesaremerely
*piecesofinformationthatneedtobesavedinbetweenserverrestarts.
*<p>
*Atthemoment,propertiesarestoredinaJavaPropertiesfile.Inaversion
*ofJivecomingsoon,thepropertiesfileformatwillmovetoXML.XML
*propertieswillallowhierarchicalpropertystructureswhichmaymeanthe
*APIofthisclasswillhavetochange.
*<p>
*JivepropertiesareonlymeanttobesetandretreviedbycoreJiveclasses.
*Therefore,skinwritersshouldprobablyignorethisclass.
*<p>
*Thisclassisimplementedasasingletonsincemanyclassloadersseemto
*takeissuewithdoingclasspathresourceloadingfromastaticcontext.
*/
publicclassPropertyManager{

privatestaticPropertyManagermanager=null;
privatestaticObjectmanagerLock=newObject();
privatestaticStringpropsName="/pcc_2000.properties";

/**
*ReturnsaJiveproperty
*
*@paramnamethenameofthepropertytoreturn.
*@returnsthepropertyvaluespecifiedbyname.
*/
publicstaticStringgetProperty(Stringname){
if(manager==null){
synchronized(managerLock){
if(manager==null){
Stringsysname=System.getProperty("os.name").toUpperCase();
if(sysname.indexOf("WIN")!=-1){
propsName=propsName2000;
}
else{
propsName=propsNameLinux;
}
manager=newPropertyManager(propsName);
}
}
}
returnmanager.getProp(name);
}

/**
*SetsaJiveproperty.
*
*@paramnamethenameofthepropertybeingset.
*@paramvaluethevalueofthepropertybeingset.
*/
publicstaticvoidsetProperty(Stringname,Stringvalue){
if(manager==null){
synchronized(managerLock){
if(manager==null){
manager=newPropertyManager(propsName);
}
}
}
manager.setProp(name,value);
}

/**
*Returnstrueifthepropertiesarereadable.Thismethodismainly
*valuableatsetuptimetoensurethatthepropertiesfileissetup
*correctly.
*/
publicstaticbooleanpropertyFileIsReadable(){
if(manager==null){
synchronized(managerLock){
if(manager==null){
manager=newPropertyManager(propsName);
}
}
}
returnmanager.propFileIsReadable();
}

/**
*Returnstrueifthepropertiesarewritable.Thismethodismainly
*valuableatsetuptimetoensurethatthepropertiesfileissetup
*correctly.
*/
publicstaticbooleanpropertyFileIsWritable(){
if(manager==null){
synchronized(managerLock){
if(manager==null){
manager=newPropertyManager(propsName);
}
}
}
returnmanager.propFileIsWritable();
}

/**
*Returnstrueifthejive.propertiesfileexistswherethepathproperty
*purportsthatitdoes.
*/
publicstaticbooleanpropertyFileExists(){
if(manager==null){
synchronized(managerLock){
if(manager==null){
manager=newPropertyManager(propsName);
}
}
}
returnmanager.propFileExists();
}

privatePropertiesproperties=null;
privateObjectpropertiesLock=newObject();
privateStringresourceURI;

/**
*Singletonaccessonly.
*/
privatePropertyManager(StringresourceURI){
this.resourceURI=resourceURI;
}

/**
*GetsaJiveproperty.Jivepropertiesarestoredinjive.properties.
*Thepropertiesfileshouldbeaccesiblefromtheclasspath.Additionally,
*itshouldhaveapathfieldthatgivesthefullpathtowherethe
*fileislocated.Gettingpropertiesisafastoperation.
*/
publicStringgetProp(Stringname){
//Ifpropertiesarentloadedyet.Wealsoneedtomakethisthread
//safe,sosynchronize...
if(properties==null){
synchronized(propertiesLock){
//Needanadditionalcheck
if(properties==null){
loadProps();
}
}
}
returnproperties.getProperty(name);
}

/**
*SetsaJiveproperty.Becausethepropertiesmustbesavedtodisk
*everytimeapropertyisset,propertysettingisrelativelyslow.
*/
publicvoidsetProp(Stringname,Stringvalue){
//Onlyonethreadshouldbewritingtothefilesystematonce.
synchronized(propertiesLock){
//Createthepropertiesobjectifnecessary.
if(properties==null){
loadProps();
}
properties.setProperty(name,value);
//Now,savethepropertiestodisk.Inorderforthistowork,theuser
//needstohavesetthepathfieldinthepropertiesfile.Trim
//theStringtomakesuretherearenoextraspaces.
Stringpath=properties.getProperty("path").trim();
OutputStreamout=null;
try{
out=newFileOutputStream(path);
properties.store(out,"jive.properties--"+(newjava.util.Date()));
}
catch(Exceptionioe){
System.err.println("Therewasanerrorwritingjive.propertiesto"+path+"."+
"EnsurethatthepathexistsandthattheJiveprocesshaspermission"+
"towritetoit--"+ioe);
ioe.printStackTrace();
}
finally{
try{
out.close();
}catch(Exceptione){}
}
}
}

/**
*LoadsJivepropertiesfromthedisk.
*/
privatevoidloadProps(){
properties=newProperties();
InputStreamin=null;
try{
in=getClass().getResourceAsStream(resourceURI);
properties.load(in);
}
catch(IOExceptionioe){
System.err.println("ErrorreadingPccproperties"+ioe);
ioe.printStackTrace();
}
finally{
try{
in.close();
}catch(Exceptione){}
}
}

/**
*Returnstrueifthepropertiesarereadable.Thismethodismainly
*valuableatsetuptimetoensurethatthepropertiesfileissetup
*correctly.
*/
publicbooleanpropFileIsReadable(){
try{
InputStreamin=getClass().getResourceAsStream(resourceURI);
returntrue;
}
catch(Exceptione){
returnfalse;
}
}

/**
*Returnstrueifthejive.propertiesfileexistswherethepathproperty
*purportsthatitdoes.
*/
publicbooleanpropFileExists(){
Stringpath=getProp("path");
Filefile=newFile(path);
if(file.isFile()){
returntrue;
}
else{
returnfalse;
}
}

/**
*Returnstrueifthepropertiesarewritable.Thismethodismainly
*valuableatsetuptimetoensurethatthepropertiesfileissetup
*correctly.
*/
publicbooleanpropFileIsWritable(){
Stringpath=getProp("path");
Filefile=newFile(path);
if(file.isFile()){
//Seeifwecanwritetothefile
if(file.canWrite()){
returntrue;
}
else{
returnfalse;
}
}
else{
returnfalse;
}
}

privatestaticStringpropsName2000="/pcc_2000.properties";
privatestaticStringpropsNameLinux="/pcc_linux.properties";
}
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。

灵魂腐蚀 发表于 2015-1-21 12:23:03

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

小魔女 发表于 2015-1-26 22:40:20

是一种语言,用以产生「小应用程序(Applet(s))

第二个灵魂 发表于 2015-2-5 04:34:44

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

因胸联盟 发表于 2015-2-5 16:30:28

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

admin 发表于 2015-2-12 23:01:06

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

不帅 发表于 2015-2-26 20:44:05

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

冷月葬花魂 发表于 2015-3-1 17:25:51

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

莫相离 发表于 2015-3-10 21:19:34

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

再见西城 发表于 2015-3-11 07:11:30

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

活着的死人 发表于 2015-3-11 21:22:48

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

谁可相欹 发表于 2015-3-19 13:58:39

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

乐观 发表于 2015-3-21 03:16:22

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

若天明 发表于 2015-4-16 05:11:29

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

海妖 发表于 2015-4-21 10:33:17

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

变相怪杰 发表于 2015-4-26 22:26:30

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

分手快乐 发表于 2015-5-5 22:28:29

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

深爱那片海 发表于 2015-6-12 23:19:24

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

愤怒的大鸟 发表于 2015-6-25 09:26:39

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

飘灵儿 发表于 2015-6-27 22:36:53

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
页: [1]
查看完整版本: JAVA网站制作之一个毗连池的例子(来自JIVE)(6)