2005年9月22日

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
/*
   helloBEAN有一个str属性类型为String 它继承一个Pr的接口 实现方法print(); 
   打印出str
*/

 <bean id="hello" class="com.spring.bean.Hello">
  <property name="str">
   <value>wangzhenjia</value>
  </property>
 </bean>
 
/*
   Advice ---处理逻 (通知) 可以是MethodBeforeAdviceAfterReturningAdviceIntroductionInterceptor
   里面之一种的实现 这将会在hello.print()方法时候根据具体的实现被调用
*/

 <bean id="beforAdvice" class="com.spring.bean.BeforBean"></bean>
 /*   
   切入点 advice指向处理逻辑 pattern指出当什么条件下触发advice
   当然当有多个条件时候可以用patterns 它是个List
*/

<bean id="berforAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
  <property name="advice">
   <ref local="beforAdvice"/>
  </property>
  <property name="pattern">
   <value>com\.spring\.bean\.Pr\.print</value>
  </property>
 </bean>
 
/*
   用ProxyFactoryBean创建AOP代理
   proxyInterfaces 指定实现的接口
   target目标
   interceptorNames可以指定Advisor 
   或者interceptor    MethodBeforeAdvice ,AfterReturningAdvice,   IntroductionInterceptor 都可以
   
*/

 <bean id="myproxyBean" class="org.springframework.aop.framework.ProxyFactoryBean">
  <property name="proxyInterfaces">
   <value>com.spring.bean.Pr</value>
  </property>
  
  <property name="target">
   <ref local="hello"/>
  </property>
  
  <property name="interceptorNames">
   <list>
    <value>berforAdvisor</value>
   </list>
  </property>
 </bean>
 
</beans>

posted @ 2005-10-20 16:09 射手座的我 双子座的她 阅读(358) | 评论 (0)编辑 收藏

ClassPathResource s=new ClassPathResource("beans.xml")
XmlBeanFactory x=new XmlBeanFactory(s);
//根路径指定->class文件夹开始找beans.xml

ClassPathXmlApplicationContext cx=new ClassPathXmlApplicationContext("beans.xml");
//根路径指定->class文件夹开始找beans.xml

ApplicationContext c=new FileSystemXmlApplicationContext("beans.xml");
//根路径指定->项目根路径 开始找beans.xml

posted @ 2005-10-18 16:29 射手座的我 双子座的她 阅读(301) | 评论 (0)编辑 收藏

真正爱你的女人,在你为生活忙碌了一天以后,不会因为你身上的汗味难闻而远离你,会温柔地为你擦去汗渍;

  真正爱你的女人,在你懒得不想洗澡的时候,帮你打好水给你泡脚,帮你洗脸按摩,而不会一脚把你揣下床;

  真正爱你的女人,帮你洗衣服的时候从来不会有怨言,因为她觉得为你洗衣服也是一件很幸福的事;

  真正爱你的女人,会在你内心空虚的时候陪你度过一个又一个晚上,而当你忘记她的时候她却不会怪你;

  真正爱你的女人,在你提出分手的时候虽然很不舍得但还是会马上答应你,因为她知道你和她在一起已经不会快乐;

  真正爱你的女人,会在买自己东西的时候对比三家,但会毫不犹豫地买下你喜欢的东西;

  真正爱你的女人,总是把自己最活跃的一面展现给你,因为她希望你看到的总是一个阳光的自己;

  真正爱你的女人,在你伤害了她后躲在自己的房间里偷偷地哭,因为她不想让你心存内疚;

  真正爱你的女人,一颗心总是在你身上:今天过得好不好?有没有注意休息?有没有按时吃饭?

  真正爱你的女人,会在你和别的女人交往的时候默默地为你祈祷祝福,因为她是真的很希望你幸福;

  真正爱你的女人,不会和你说她有多么的在乎你希望你时时刻刻在她的身边,因为她知道你喜欢自由地呼吸空气;

  真正爱你的女人,在撑伞的时候总会把伞靠近你,因为她宁愿自己生病也不愿意让你淋一点雨;

  真正爱你的女人,会在她最快乐的时候打给电话给你,因为他希望你能分享到她的快乐,她喜欢和你一起分享的感觉;

  真正爱你的女人,会抛开一切和你一起疯,因为她希望你和她在一起的时候不会有压抑的感觉;

  真正爱你的女人,会拒绝所有对她示爱的男生,因为她的心里就只有你一个;

  真正爱你的女人,会全心全意地支持你,和你一起做的你喜欢做的事;

  真正爱你的女人,不会让你因为她而停止了你前进地脚步,她会鼓励你让你没有顾虑的往前走;

  真正爱你的女人,在分开了以后还是会常常想你,然后给远方的你打给电话或发短信和你说要注意身体;

  真正爱你的女人,从不会要求你送她什么贵重的礼物,她只希望在她生日的时候你可以陪她度过一整天;

  真正爱你的女人,她会让其他的女人介入你的生活,因为她希望你可以找到你所认为的属于自己的幸福;

  真正爱你的女人,她会一直等,等到你对她说“我爱你”的那个时候。

posted @ 2005-09-28 21:53 射手座的我 双子座的她 阅读(299) | 评论 (0)编辑 收藏

鱼对水说:你看不见我的泪,因为我在水中。
水对鱼说:我能感觉到你的泪,因为你在我心中。
我不是鱼,你也不是水。你能看见我寂寞的眼泪吗?

鱼对水说:我永远不会离开你,因为离开你,我无法生存。
水对鱼说:我知道,可是如果你的心不在呢?
我不是鱼,你也不是水。我不离开你是因为我爱你。
可是,你的心里有我吗?

鱼对水说:我很寂寞,因为我只能待在水里。
水对鱼说:我知道,因为我的心里装着你的寂寞。
我不是鱼,你也不是水。我寂寞是因为我思念你。
可是,远方的你能感觉到吗?

鱼对水说:如果没有鱼,那水里还会剩下什么?
水对鱼说:如果没有你,那又怎么会有我?
我不是鱼,你也不是水。没有你的爱,我依然会好好的活。
可是,好好的活并不代表我可以把你忘记。

鱼对水说:一辈子不能出去看看外面的世界,是我最大的遗憾。
水对鱼说:一辈子不能打消你的这个念头,是我最大的失败。
我不是鱼,你也不是水。现在的我只想要一个一辈子的承诺。
可是,你负担的起吗?

鱼对水说:在你的一生中,我是第几条鱼?
水对鱼说:你不是我在水中的第一条鱼,却是在我心中的第一条。
我不是鱼,你也不是水。我们不是生命中的第一个,
可是,你知道吗?你却是我第一个想嫁的人。

鱼对水说:你相信一见钟情吗?
水对鱼说:当我意识到你是鱼的那一刻,就知道你会游到我的心里。
我不是鱼,你也不是水。我以为我对你的爱不会长久,以为那是一见钟情。
可是,我错了,感情如酒,越封越浓越长久。

鱼对水说:为什么每次都是我问你答?
水对鱼说:因为我喜欢在问答中让你了解我的心。
我不是鱼,你也不是水。为什么你总是让我等待?
难道你不知道,等待=失去信心=放弃。

如果我是鱼,而你是水,那该多好!水永远都知道鱼的想法,因为鱼在水里。
但是我不是鱼,你也不是水。你永远都不知道我的爱,
因为我也许根本就不在你的心里。

posted @ 2005-09-25 20:39 射手座的我 双子座的她 阅读(262) | 评论 (0)编辑 收藏

接口 Interface
       没有方法体,只有抽象方法, implements接口时候必须实现该接口所定义的所有的抽象方法
       可以implements多个接口 用,号间隔.
抽象类  Abstract
       可以有一部份实现方法,也可以有抽象方法,
       只可以extends一个抽象类

二者都是不可实例化


假设我们需要做一个支持多种数据库的项目,但是数据库之间有存在的差别,难道我们就要为不同的数据库开发不同的系统?答案是NO!
我们可以将多种数据库所有的方法抽象出来,写成一个个的方法组合到一个接口中
然后有多少种数据库我们就写几个这样的类实现这个接口

具体如下:
我们首先把所有的抽象方法组合到一个DataOperate的接口中
public interface DataOperate{
      Connection createConn();     /*建立连接*/
       void closeConn();               /*关闭连接*/
       ResultSet getRs();              /*返回结果集*/
       boolean   exec();               /*执行语句*/
       boolean   isClose();         
/*公共方法 查看连接状态*/
}

定义完接口 我们再创建一个抽象类 来实现公共的方法isClose()
public abstract class AbstractDataOperate implements DataOperate{
     public Connection createConn(){
            return null;
     }
     public void closeConn(){
     }
     public ResultSet getRs(){
            return null;
     }
     public boolean exec(){
            return fasle;
     }
     /**
     *公共方法的实现
     **/

     public boolean isClose(){
        if(conn!=null)
             return false;
        else
            return true;
     }
   
}

接下来我们分别写3个类OracleDataOperate,SqlServerDataOperate,MySqlDataOperate继承AbstractDatOperate具体实现方法 这里不再叙述

好了 现在最后一步 写一个工厂方法来统一得到数据库操作类的实例
public class DataOperateFactory{
     public static final int OracleKey=1;
     public static final int SqlServerKey=2;   
     public static final int MySqlKey=3;
    
     public static int DbType =OracleKey;
     private static DataOperate db;
    
     public static DataOperate getInstance(){
           if(db==null){
                   if(DbType==OracleKey)
                        db=new OracleDataOperate();
                  else if(DbType==SqlServerKey)
                        db=new SqlServerDataOperate();
                  else if(DbType==MySqlKey)
                        db=new MySqlDataOperate();
          }
         return db;
     }
}

Ok 到此所有工作都完成 来测试吧
public class  MyTest{
  public static void main(String args[]){
      
      DataOperate db=AbstrctDataOperate.getInstance();
      db.createConn();

   }
}


在MyTest类里根本没有出现OracelDataOperate、MysqlDataOperate等的影子,这就是接口的威力。客户端不必针对OracelDataOperate等写不同的代码,它只关心DataOperate即可,具体要取那个类的逻辑就由DataOperateFactory负责了。
如果还有新的数据库添加的话 只需要象OracleaDataOperate那样 再写一个这样类 继承AbstractDataOperate类 然后在工厂类里DataOperateFactory加上相应的代码即可

posted @ 2005-09-22 23:12 射手座的我 双子座的她 阅读(1713) | 评论 (0)编辑 收藏

职场十大精辟语句

大学毕业生要找的只是一个工作,而不是职业,更不是事业。
    
  ———在北京召开的首届中国大学生就业高峰论坛上,专家们均认为,高校毕业生就业时应当放低自身期望值,做好从蓝领、灰领干起的心理准备。
  
  大学学习期间,要尽量争取脑袋满,而不要急于口袋满。
    
  ———中科院院士王选谈对当前部分学生休学开公司的看法。
    
  不要读博士,因为博士在美国找工作的难度,相当于女博士在中国找老公的难度。也千万不要羡慕有3个博士头衔的人,因为只有找不到工作的时候才会一个接一个地读博士。
    
  ———一个没有博士头衔的留学生如是说。
    
  千万不要以为美国没有天才,美国的天才只不过是喜欢退学而已。也千万不要以为中国人都是天才,中国的有些天才除了考分高,基本上什么都不会。
    
  ———一个留学生在看到中国人在拼命上哈佛时说。
    
  他们以为MBA就像是一个美容院,读完MBA,出来就会容光焕发,脱胎换骨。
    
  ———令专家担忧的是:MBA在中国已被简化为高薪加升职。
    
  中国人太多了,13亿人,你藏在这么多人里头,怎样才能引起别人注意?一个老板要请人,两个应聘者能力差不多,那他一定会选那个长得比较好看的。
    
  ———一位整容师如此解释为何中国流行整容热。
    
  让我讲创业的故事,就像祥林嫂讲阿毛的故事一样,讲多了也没什么意义。
    
  ———《福布斯》和《欧洲货币》双料中国内地首富丁磊在母校中国电子科大说的话,以此表示对富豪话题的厌倦。
    
  八分人才,九分使用,十分待遇。
    
  ———力帆集团董事长尹明善谈民营企业的留人之道。
    
  总是在裁人,简称总裁;老是板着脸,故称老板;经常不理人那叫经理。
    
  ———商业职位新解。
    
  铁饭碗的真正含义不是在一个地方吃一辈子饭,而是一辈子到哪儿都有饭吃。

posted @ 2005-09-22 13:52 射手座的我 双子座的她 阅读(846) | 评论 (0)编辑 收藏

1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );

2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );

3. Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

4. Sybase(http://jtds.sourceforge.net)jconn2.jar
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")

5. Microsoft SQLServer(http://jtds.sourceforge.net)
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );

6. Microsoft SQLServer(http://www.microsoft.com)
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd );

7. ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

8.DB2
Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );

posted @ 2005-09-22 11:32 射手座的我 双子座的她 阅读(235) | 评论 (0)编辑 收藏

ANT工具是Apche的一个开放源代码项目,它是一个优秀的软件工程管理工具
本章讲解如何在Eclipse下运用ANT

准备工作
1.安装Eclipse3.0版本,安装jdk,我用的是1.4.2版本,下载ANT包.
2.设置环境变量
    set :[name] --JAVA_HOME |     [value] ----jdk的安装目录
    set :[name] -- ANT_HOME |      [value] ----ant的安装目录
    set :将系统的path目录后面添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANT_HOME%lib;{用;号隔开}
   设置完环境变量 进入控制台测试:开始->运行->输入CMD->输入ant -version 如果打出ANT的版本那就成功


新建Project
创建一个类 名为HelloANT 我们只需要做的是在HelloANT类里打印出"HelloANT"
项目目录如下  Porject
               |-----com
                      |--ant
                          |---HelloANT.java

HelloAnt代码如下
package com.ant;

public class HelloANT {

 public static void main(String[] args) {
  System.out.println("HelloAnt!!");
 }
}

现在我们开始运用ANT来编译该类文件 以及创建classes输出文件夹 和删除编译好的classes
1.新建2个文件 build.properties   build.xml
  build.properties里面存储build.xml需要的公共变量 以 键-值对的方式
  build.properties代码
  build.src=com /*这里build.src指向项目根目录com文件夹*/
  build.classes=classes
/*这里build.classes指向项目根目录不存在的classes文件夹来存放classes文件*/
  
 
build.xml代码
<?xml version="1.0"?>
<!--创建一个工程项 默认运行的target是init[default]  [basedir]="."代表是指向项目根目录-->
<project default="init" basedir=".">
 <!--导入properties文件-->
 <property file="build.properties"></property>
 <!--初始化 创建classes文件夹-->
 <target name="init">
  <mkdir dir="${build.classes}"/>
 </target>
 <!--编译JAVA文件 编译时先运行init [depends]-->
 <target name="compile" depends="init">
  <javac srcdir="${build.src}" destdir="${build.classes}">
  </javac>
 </target>

 <!--清理 删除classes文件夹-->
 <target name="clean">
  <delete includeemptydirs="true">
   <fileset dir="${build.classes}"></fileset>
  </delete>
 </target>
</project>

ok 保存build.xml文件
现在可以在Eclipse下运行ANT了
在Eclipse里的透视图[大纲]里
可以看到build.xml文件里几个target的名
右键->运行->ANT构建
看看效果吧

posted @ 2005-09-22 11:24 射手座的我 双子座的她 阅读(825) | 评论 (0)编辑 收藏

最近穷疯了,只好吃馒头——
> > > > > > > > > > >   想吃饼的时候,把馒头拍扁了当饼吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃面的时候,拿梳子把馒头梳几下当面吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃冰淇淋的时候,把馒头放在冰箱里冻冻再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃饼干的时候,把馒头烤脆了再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想喝奶的时候,把馒头上面拧个揪揪,嘬着吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃方便面的时候,把馒头从下面掏空,再把掏出来的馒头渣放在里面,用水
> > > > > > > > > > > 泡着
> > > > > > > > > > > 吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃肉的时候,把馒头捏成猪或羊的形状吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃火锅的时候,把馒头切成片,放在开水里,捞着吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃香肠的时候,把馒头搓成条再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃螃蟹的时候,把馒头从上面掀开再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃汉堡的时候,把馒头包在纸里,然后把纸打开再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃香蕉的时候,把馒头皮剥了再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃鸡腿的时候,找根筷子穿着馒头吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃包子的时候,把馒头瓤抠出来再塞进去吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃洋葱的时候,在馒头里放点芥末再吃。
> > > > > > > > > > >
> > > > > > > > > > >   想吃麦片的时候,把馒头捏碎,再压扁,再泡水吃。
> > > > > > > > > > >
> > > > > > > > > > >   穷有穷的过法啊……

posted @ 2005-09-22 09:59 射手座的我 双子座的她 阅读(251) | 评论 (0)编辑 收藏


posts - 11, comments - 1, trackbacks - 0, articles - 0

Copyright © 射手座的我 双子座的她