锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人精品无码区二本,91亚洲国产成人精品下载,久久亚洲AV成人无码国产电影 http://www.tkk7.com/blameswood/articles/189085.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:39:00 GMThttp://www.tkk7.com/blameswood/articles/189085.htmlhttp://www.tkk7.com/blameswood/comments/189085.htmlhttp://www.tkk7.com/blameswood/articles/189085.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189085.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189085.html闃呰鍏ㄦ枃

鐏劙鍑烘灄 2008-03-27 17:39 鍙戣〃璇勮
]]>
Log4j閰嶇疆 http://www.tkk7.com/blameswood/articles/189084.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:38:00 GMThttp://www.tkk7.com/blameswood/articles/189084.htmlhttp://www.tkk7.com/blameswood/comments/189084.htmlhttp://www.tkk7.com/blameswood/articles/189084.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189084.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189084.htmlLog4j閰嶇疆
鎵闇鏂囦歡錛?銆乯ar鍖?錛?commons-logging.jar 銆乴og4j-1.2.8.jar 銆乼aglibs-log.jar
                    2銆侀厤緗枃浠訛細commons-logging.properties 銆乴og4j.properties
                    3銆佹爣絳炬枃浠訛細taglibs-log.tag

commons-logging.properties鏂囦歡鍐呭錛?/p>
      ##set Log as Log4J
     org.apache.commons.logging.Log
=org.apache.commons.logging.impl.Log4JCategoryLog

      ## set Log as SimpleLog
      #org.apache.commons.logging.Log
=org.apache.commons.logging.impl.SimpleLog


log4j.properties鏂囦歡鍐呭錛?/p>

#ConversionPattern鍙傛暟鐨勬牸寮忓惈涔?br /> #鏍煎紡鍚?nbsp;鍚箟
#
%c 杈撳嚭鏃ュ織淇℃伅鎵灞炵殑綾葷殑鍏ㄥ悕
#
%d 杈撳嚭鏃ュ織鏃墮棿鐐圭殑鏃ユ湡鎴栨椂闂達紝榛樿鏍煎紡涓篒SO8601錛屼篃鍙互鍦ㄥ叾鍚庢寚瀹氭牸寮忥紝姣斿錛?/span>%d{yyy-MM-dd HH:mm:ss }錛岃緭鍑虹被浼鹼細2002-10-18- 22錛?/span>10錛?/span>28
#
%f 杈撳嚭鏃ュ織淇℃伅鎵灞炵殑綾葷殑綾誨悕
#
%l 杈撳嚭鏃ュ織浜嬩歡鐨勫彂鐢熶綅緗紝鍗寵緭鍑烘棩蹇椾俊鎭殑璇彞澶勪簬瀹冩墍鍦ㄧ殑綾葷殑絎嚑琛?br /> #%m 杈撳嚭浠g爜涓寚瀹氱殑淇℃伅錛屽log(message)涓殑message
#
%n 杈撳嚭涓涓洖杞︽崲琛岀錛學indows騫沖彴涓?#8220;\r\n”錛孶nix騫沖彴涓?#8220;\n”
#
%p 杈撳嚭浼樺厛綰э紝鍗矰EBUG錛孖NFO錛學ARN錛孍RROR錛孎ATAL銆傚鏋滄槸璋冪敤debug()杈撳嚭鐨勶紝鍒欎負DEBUG錛屼緷姝ょ被鎺?br /> #%r 杈撳嚭鑷簲鐢ㄥ惎鍔ㄥ埌杈撳嚭璇ユ棩蹇椾俊鎭墍鑰楄垂鐨勬縐掓暟
#
%t 杈撳嚭浜х敓璇ユ棩蹇椾簨浠剁殑綰跨▼鍚?br />
## LOGGERS ##
#define a logger named helloAppLogger
log4j.rootLogger
=info,console,file

## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console
=org.apache.log4j.ConsoleAppender

# define an appender named file, which is set to be a RollingFileAppender
log4j.appender.file
=org.apache.log4j.RollingFileAppender
log4j.appender.file.File
=dada.txt

## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout
=org.apache.log4j.SimpleLayout
# assign a PatternLayout to file appender

log4j.appender.file.layout
=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern
=%d{yyyy-MM-dd hh:mm:ss} [%c]:%-%c- %m%n

鏂板緩log4j閰嶇疆鏂囦歡杞藉叆servlet綾?
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.log4j.PropertyConfigurator;

public class Log4j extends HttpServlet {
    
private static final String CONTENT_TYPE = "text/html; charset=GBK";

    
//Initialize global variables
    public void init() throws ServletException {
   String prefix 
= this.getServletContext().getRealPath("/");
   String file 
= this.getInitParameter("log4j");
   System.out.println(
"杞藉叆log4j閰嶇疆鏂囦歡"+prefix+file);
   
if(file!=null){
     PropertyConfigurator.configure(prefix
+file);
     }
    }

    
//Clean up resources
    public void destroy() {
    }
}
web.xml鏂囦歡:
  <servlet>
    
<servlet-name>log4j</servlet-name>
    
<servlet-class>derek.log4j.Log4j</servlet-class>
    
<init-param>
      
<param-name>log4j</param-name>
      
<param-value>WEB-INF\classes\log4j.properties</param-value>
    
</init-param>
    
<load-on-startup>1</load-on-startup>
  
</servlet>
  
<servlet-mapping>
    
<servlet-name>log4j</servlet-name>
    
<url-pattern>/log4j</url-pattern>
  
</servlet-mapping>
嫻嬭瘯浠g爜錛?br />
import org.apache.log4j.Logger;

public class Log4jTest {
    
public Log4jTest() {
        Logger log 
= Logger.getLogger(this.getClass().getName());
        log.info(
"log4jDemo");
    }

    
public static void main(String[] args) {
        Log4jTest log4jtest 
= new Log4jTest();
    }
}


鐏劙鍑烘灄 2008-03-27 17:38 鍙戣〃璇勮
]]>
Hibernate閰嶇疆鏂囦歡 http://www.tkk7.com/blameswood/articles/189083.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:36:00 GMThttp://www.tkk7.com/blameswood/articles/189083.htmlhttp://www.tkk7.com/blameswood/comments/189083.htmlhttp://www.tkk7.com/blameswood/articles/189083.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189083.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189083.html<? xml version = ' 1.0 '  encoding = ' UTF-8 ' ?>
<! DOCTYPE hibernate - configuration PUBLIC
          
" -//Hibernate/Hibernate Configuration DTD 3.0//EN "
          
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd " >

<!--  Generated by MyEclipse Hibernate Tools.                    -->
< hibernate - configuration >

< session - factory >
    
< property name = " myeclipse.connection.profile " > MSSQL </ property >
    
< property name = " connection.url " > jdbc:jtds:sqlserver: // 192.168.56.32:1433/itdb</property>
     < property name = " connection.username " >dada </ property >
    
< property name = " connection.password " > dada </ property >
    
< property name = " connection.driver_class " > net.sourceforge.jtds.jdbc.Driver </ property >
    
< property name = " dialect " > org.hibernate.dialect.SQLServerDialect </ property >
    
< property name = " session_factory_name " > DerekSessionFactory </ property >
    
< property name = " show_sql " > false </ property >
    
< property name = " hibernate.jdbc.fetch_size " > 50 </ property >
    
< property name = " hibernate.jdbc.batch_size " > 20 </ property >

    
< mapping resource = " hbm/OvertimeAdmin.hbm.xml "   />
    
< mapping resource = " hbm/OvertimeAgent.hbm.xml "   />
    
< mapping resource = " hbm/OvertimePermit.hbm.xml "   />
    
< mapping resource = " hbm/OvertimeRecord.hbm.xml "   />

</ session - factory >

</ hibernate - configuration >
浣跨敤榪炴帴姹犵殑閰嶇疆
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
    
<property name="myeclipse.connection.profile">MSSQL</property>
    
<property name="connection.datasource">java:comp/env/jdbc/itdb</property>
    <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
    
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
    
<property name="session_factory_name">DerekSessionFactory</property>
    
<property name="show_sql">false</property>
    
<property name="hibernate.jdbc.fetch_size">50</property>
    
<property name="hibernate.jdbc.batch_size">20</property>

    
<mapping resource="hbm/OvertimeAdmin.hbm.xml" />
    
<mapping resource="hbm/OvertimeAgent.hbm.xml" />
    
<mapping resource="hbm/OvertimePermit.hbm.xml" />
    
<mapping resource="hbm/OvertimeRecord.hbm.xml" />

</session-factory>

</hibernate-configuration>


鐏劙鍑烘灄 2008-03-27 17:36 鍙戣〃璇勮
]]>
Java Reflection (JAVA鍙嶅皠) http://www.tkk7.com/blameswood/articles/189080.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:35:00 GMThttp://www.tkk7.com/blameswood/articles/189080.htmlhttp://www.tkk7.com/blameswood/comments/189080.htmlhttp://www.tkk7.com/blameswood/articles/189080.html#Feedback1http://www.tkk7.com/blameswood/comments/commentRss/189080.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189080.html
    Reflection 鏄?Java 紼嬪簭寮鍙戣璦鐨勭壒寰佷箣涓錛屽畠鍏佽榪愯涓殑 Java 紼嬪簭瀵硅嚜韜繘琛屾鏌ワ紝鎴栬呰“鑷”錛屽茍鑳界洿鎺ユ搷浣滅▼搴忕殑鍐呴儴灞炴с備緥濡傦紝浣跨敤瀹冭兘鑾峰緱 Java 綾諱腑鍚勬垚鍛樼殑鍚嶇О騫舵樉紺哄嚭鏉ャ侸ava 鐨勮繖涓鑳藉姏鍦ㄥ疄闄呭簲鐢ㄤ腑涔熻鐢ㄥ緱涓嶆槸寰堝錛屼絾鏄湪鍏跺畠鐨勭▼搴忚璁¤璦涓牴鏈氨涓嶅瓨鍦ㄨ繖涓鐗規с備緥濡傦紝Pascal銆丆 鎴栬?C++ 涓氨娌℃湁鍔炴硶鍦ㄧ▼搴忎腑鑾峰緱鍑芥暟瀹氫箟鐩稿叧鐨勪俊鎭?br /> JavaBean 鏄?reflection 鐨勫疄闄呭簲鐢ㄤ箣涓錛屽畠鑳借涓浜涘伐鍏峰彲瑙嗗寲鐨勬搷浣滆蔣浠剁粍浠躲傝繖浜涘伐鍏烽氳繃 reflection 鍔ㄦ佺殑杞藉叆騫跺彇寰?Java 緇勪歡(綾? 鐨勫睘鎬с?br />
1. 涓涓畝鍗曠殑渚嬪瓙
鑰冭檻涓嬮潰榪欎釜綆鍗曠殑渚嬪瓙錛岃鎴戜滑鐪嬬湅 reflection 鏄浣曞伐浣滅殑銆?br /> import java.lang.reflect.*;
public class DumpMethods {
    public static void main(String args[]) {
        try {
            Class c = Class.forName(args[0]);
            Method m[] = c.getDeclaredMethods();
            for (int i = 0; i < m.length; i++)
                System.out.println(m[i].toString());
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


鎸夊涓嬭鍙ユ墽琛岋細
java DumpMethods java.util.Stack

瀹冪殑緇撴灉杈撳嚭涓猴細
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)

榪欐牱灝卞垪鍑轟簡java.util.Stack 綾葷殑鍚勬柟娉曞悕浠ュ強瀹冧滑鐨勯檺鍒剁鍜岃繑鍥炵被鍨嬨?/p>

榪欎釜紼嬪簭浣跨敤 Class.forName 杞藉叆鎸囧畾鐨勭被錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栬繖涓被涓畾涔変簡鐨勬柟娉曞垪琛ㄣ俲ava.lang.reflect.Methods 鏄敤鏉ユ弿榪版煇涓被涓崟涓柟娉曠殑涓涓被銆?/p>

2.寮濮嬩嬌鐢?Reflection
鐢ㄤ簬 reflection 鐨勭被錛屽 Method錛屽彲浠ュ湪 java.lang.relfect 鍖呬腑鎵懼埌銆備嬌鐢ㄨ繖浜涚被鐨勬椂鍊欏繀欏昏閬靛驚涓変釜姝ラ錛氱涓姝ユ槸鑾峰緱浣犳兂鎿嶄綔鐨勭被鐨?java.lang.Class 瀵硅薄銆傚湪榪愯涓殑 Java 紼嬪簭涓紝鐢?java.lang.Class 綾繪潵鎻忚堪綾誨拰鎺ュ彛絳夈?/p>

涓嬮潰灝辨槸鑾峰緱涓涓?Class 瀵硅薄鐨勬柟娉曚箣涓錛?br /> Class c = Class.forName("java.lang.String");
榪欐潯璇彞寰楀埌涓涓?String 綾葷殑綾誨璞°傝繕鏈夊彟涓縐嶆柟娉曪紝濡備笅闈㈢殑璇彞錛?br /> Class c = int.class;   鎴栬?nbsp;  Class c = Integer.TYPE;

瀹冧滑鍙幏寰楀熀鏈被鍨嬬殑綾諱俊鎭傚叾涓悗涓縐嶆柟娉曚腑璁塊棶鐨勬槸鍩烘湰綾誨瀷鐨勫皝瑁呯被 (濡?Integer) 涓鍏堝畾涔夊ソ鐨?TYPE 瀛楁銆?br />
絎簩姝ユ槸璋冪敤璇稿 getDeclaredMethods 鐨勬柟娉曪紝浠ュ彇寰楄綾諱腑瀹氫箟鐨勬墍鏈夋柟娉曠殑鍒楄〃銆?br />
涓鏃﹀彇寰楄繖涓俊鎭紝灝卞彲浠ヨ繘琛岀涓夋浜嗏斺斾嬌鐢?reflection API 鏉ユ搷浣滆繖浜涗俊鎭紝濡備笅闈㈣繖孌典唬鐮侊細
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
瀹冨皢浠ユ枃鏈柟寮忔墦鍗板嚭 String 涓畾涔夌殑絎竴涓柟娉曠殑鍘熷瀷銆?br /> 鍦ㄤ笅闈㈢殑渚嬪瓙涓紝榪欎笁涓楠ゅ皢涓轟嬌鐢?reflection 澶勭悊鐗規畩搴旂敤紼嬪簭鎻愪緵渚嬭瘉銆?/p>


妯℃嫙 instanceof 鎿嶄綔絎?br /> 寰楀埌綾諱俊鎭箣鍚庯紝閫氬父涓嬩竴涓楠ゅ氨鏄В鍐沖叧浜?Class 瀵硅薄鐨勪竴浜涘熀鏈殑闂銆備緥濡傦紝Class.isInstance 鏂規硶鍙互鐢ㄤ簬妯℃嫙 instanceof 鎿嶄綔絎︼細
class A {
}

public class instance1 {
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("A");
            boolean b1 = cls.isInstance(new Integer(37));
            System.out.println(b1);
            boolean b2 = cls.isInstance(new A());
            System.out.println(b2);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}

鍦ㄨ繖涓緥瀛愪腑鍒涘緩浜嗕竴涓?A 綾葷殑 Class 瀵硅薄錛岀劧鍚庢鏌ヤ竴浜涘璞℃槸鍚︽槸 A 鐨勫疄渚嬨侷nteger(37) 涓嶆槸錛屼絾 new A() 鏄?/p>


3.鎵懼嚭綾葷殑鏂規硶
鎵懼嚭涓涓被涓畾涔変簡浜涗粈涔堟柟娉曪紝榪欐槸涓涓潪甯告湁浠峰間篃闈炲父鍩虹鐨?reflection 鐢ㄦ硶銆備笅闈㈢殑浠g爜灝卞疄鐜頒簡榪欎竴鐢ㄦ硶錛?br /> import java.lang.reflect.*;
public class method1 {
    private int f1(Object p, int x) throws NullPointerException {
        if (p == null)
            throw new NullPointerException();
        return x;
    }
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("method1");
            Method methlist[] = cls.getDeclaredMethods();
            for (int i = 0; i < methlist.length; i++) {
                Method m = methlist[i];
                System.out.println("name = " + m.getName());
                System.out.println("decl class = " + m.getDeclaringClass());
                Class pvec[] = m.getParameterTypes();
                for (int j = 0; j < pvec.length; j++)
                    System.out.println("param #" + j + " " + pvec[j]);
                Class evec[] = m.getExceptionTypes();
                for (int j = 0; j < evec.length; j++)
                    System.out.println("exc #" + j + " " + evec[j]);
                System.out.println("return type = " + m.getReturnType());
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜紼嬪簭棣栧厛鍙栧緱 method1 綾葷殑鎻忚堪錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栦竴緋誨垪鐨?Method 瀵硅薄錛屽畠浠垎鍒弿榪頒簡瀹氫箟鍦ㄧ被涓殑姣忎竴涓柟娉曪紝鍖呮嫭 public 鏂規硶銆乸rotected 鏂規硶銆乸ackage 鏂規硶鍜?private 鏂規硶絳夈傚鏋滀綘鍦ㄧ▼搴忎腑浣跨敤 getMethods 鏉ヤ唬鏇?getDeclaredMethods錛屼綘榪樿兘鑾峰緱緇ф壙鏉ョ殑鍚勪釜鏂規硶鐨勪俊鎭?br />
鍙栧緱浜?Method 瀵硅薄鍒楄〃涔嬪悗錛岃鏄劇ず榪欎簺鏂規硶鐨勫弬鏁扮被鍨嬨佸紓甯哥被鍨嬪拰榪斿洖鍊肩被鍨嬬瓑灝變笉闅句簡銆傝繖浜涚被鍨嬫槸鍩烘湰綾誨瀷榪樻槸綾葷被鍨嬶紝閮藉彲浠ョ敱鎻忚堪綾葷殑瀵硅薄鎸夐『搴忕粰鍑恒?br />
杈撳嚭鐨勭粨鏋滃涓嬶細
name = f1
decl class = class method1
param #0 class java.lang.Object
param #1 int
exc #0 class java.lang.NullPointerException
return type = int
-----
name = main
decl class = class method1
param #0 class [Ljava.lang.String;
return type = void
-----


4.鑾峰彇鏋勯犲櫒淇℃伅
鑾峰彇綾繪瀯閫犲櫒鐨勭敤娉曚笌涓婅堪鑾峰彇鏂規硶鐨勭敤娉曠被浼鹼紝濡傦細
import java.lang.reflect.*;
public class constructor1 {
    public constructor1() {
    }

    protected constructor1(int i, double d) {
    }

    public static void main(String args[]) {
        try {
            Class cls = Class.forName("constructor1");
            Constructor ctorlist[] = cls.getDeclaredConstructors();
            for (int i = 0; i < ctorlist.length; i++) {
                Constructor ct = ctorlist[i];
                System.out.println("name = " + ct.getName());
                System.out.println("decl class = " + ct.getDeclaringClass());
                Class pvec[] = ct.getParameterTypes();
                for (int j = 0; j < pvec.length; j++)
                    System.out.println("param #" + j + " " + pvec[j]);
                Class evec[] = ct.getExceptionTypes();
                for (int j = 0; j < evec.length; j++)
                    System.out.println("exc #" + j + " " + evec[j]);
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜渚嬪瓙涓病鑳借幏寰楄繑鍥炵被鍨嬬殑鐩稿叧淇℃伅錛岄偅鏄洜涓烘瀯閫犲櫒娌℃湁榪斿洖綾誨瀷銆?br /> 榪欎釜紼嬪簭榪愯鐨勭粨鏋滄槸錛?br /> name = constructor1
decl class = class constructor1
-----
name = constructor1
decl class = class constructor1
param #0 int
param #1 double
-----

5.鑾峰彇綾葷殑瀛楁(鍩?
鎵懼嚭涓涓被涓畾涔変簡鍝簺鏁版嵁瀛楁涔熸槸鍙兘鐨勶紝涓嬮潰鐨勪唬鐮佸氨鍦ㄥ共榪欎釜浜嬫儏錛?br /> import java.lang.reflect.*;

public class field1 {
    private double d;
    public static final int i = 37;
    String s = "testing";

     public static void main(String args[]) {
        try {
            Class cls = Class.forName("field1");
            Field fieldlist[] = cls.getDeclaredFields();
            for (int i = 0; i < fieldlist.length; i++) {
                Field fld = fieldlist[i];
                System.out.println("name = " + fld.getName());
                System.out.println("decl class = " + fld.getDeclaringClass());
                System.out.println("type = " + fld.getType());
                int mod = fld.getModifiers();
                System.out.println("modifiers = " + Modifier.toString(mod));
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜渚嬪瓙鍜屽墠闈㈤偅涓緥瀛愰潪甯哥浉浼箋備緥涓嬌鐢ㄤ簡涓涓柊涓滆タ Modifier錛屽畠涔熸槸涓涓?reflection 綾伙紝鐢ㄦ潵鎻忚堪瀛楁鎴愬憳鐨勪慨楗拌錛屽“private int”銆傝繖浜涗慨楗拌鑷韓鐢辨暣鏁版弿榪幫紝鑰屼笖浣跨敤 Modifier.toString 鏉ヨ繑鍥炰互“瀹樻柟”欏哄簭鎺掑垪鐨勫瓧絎︿覆鎻忚堪 (濡?#8220;static”鍦?#8220;final”涔嬪墠)銆傝繖涓▼搴忕殑杈撳嚭鏄細
name = d
decl class = class field1
type = double
modifiers = private
-----
name = i
decl class = class field1
type = int
modifiers = public static final
-----
name = s
decl class = class field1
type = class java.lang.String
modifiers =
-----

鍜岃幏鍙栨柟娉曠殑鎯呭喌涓涓嬶紝鑾峰彇瀛楁鐨勬椂鍊欎篃鍙互鍙彇寰楀湪褰撳墠綾諱腑鐢蟲槑浜嗙殑瀛楁淇℃伅 (getDeclaredFields)錛屾垨鑰呬篃鍙互鍙栧緱鐖剁被涓畾涔夌殑瀛楁 (getFields) 銆?/p>

6.鏍規嵁鏂規硶鐨勫悕縐版潵鎵ц鏂規硶
鏂囨湰鍒拌繖閲岋紝鎵涓劇殑渚嬪瓙鏃犱竴渚嬪閮戒笌濡備綍鑾峰彇綾葷殑淇℃伅鏈夊叧銆傛垜浠篃鍙互鐢?reflection 鏉ュ仛涓浜涘叾瀹冪殑浜嬫儏錛屾瘮濡傛墽琛屼竴涓寚瀹氫簡鍚嶇О鐨勬柟娉曘備笅闈㈢殑紺轟緥婕旂ず浜嗚繖涓鎿嶄綔錛?br /> import java.lang.reflect.*;
public class method2 {
    public int add(int a, int b) {
        return a + b;
    }
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("method2");
            Class partypes[] = new Class[2];
            partypes[0] = Integer.TYPE;
            partypes[1] = Integer.TYPE;
            Method meth = cls.getMethod("add", partypes);
            method2 methobj = new method2();
            Object arglist[] = new Object[2];
            arglist[0] = new Integer(37);
            arglist[1] = new Integer(47);
            Object retobj = meth.invoke(methobj, arglist);
            Integer retval = (Integer) retobj;
            System.out.println(retval.intValue());
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


鍋囧涓涓▼搴忓湪鎵ц鐨勬煇澶勭殑鏃跺欐墠鐭ラ亾闇瑕佹墽琛屾煇涓柟娉曪紝榪欎釜鏂規硶鐨勫悕縐版槸鍦ㄧ▼搴忕殑榪愯榪囩▼涓寚瀹氱殑 (渚嬪錛孞avaBean 寮鍙戠幆澧冧腑灝變細鍋氳繖鏍風殑浜?錛岄偅涔堜笂闈㈢殑紼嬪簭婕旂ず浜嗗浣曞仛鍒般?/p>


涓婁緥涓紝getMethod 鐢ㄤ簬鏌ユ壘涓涓叿鏈変袱涓暣鍨嬪弬鏁頒笖鍚嶄負 add 鐨勬柟娉曘傛壘鍒拌鏂規硶騫跺垱寤轟簡鐩稿簲鐨?Method 瀵硅薄涔嬪悗錛屽湪姝g‘鐨勫璞″疄渚嬩腑鎵ц瀹冦傛墽琛岃鏂規硶鐨勬椂鍊欙紝闇瑕佹彁渚涗竴涓弬鏁板垪琛紝榪欏湪涓婁緥涓槸鍒嗗埆鍖呰浜嗘暣鏁?37 鍜?47 鐨勪袱涓?Integer 瀵硅薄銆傛墽琛屾柟娉曠殑榪斿洖鐨勫悓鏍鋒槸涓涓?Integer 瀵硅薄錛屽畠灝佽浜嗚繑鍥炲?84銆?/p>


7.鍒涘緩鏂扮殑瀵硅薄
瀵逛簬鏋勯犲櫒錛屽垯涓嶈兘鍍忔墽琛屾柟娉曢偅鏍瘋繘琛岋紝鍥犱負鎵ц涓涓瀯閫犲櫒灝辨剰鍛崇潃鍒涘緩浜嗕竴涓柊鐨勫璞?(鍑嗙‘鐨勮錛屽垱寤轟竴涓璞$殑榪囩▼鍖呮嫭鍒嗛厤鍐呭瓨鍜屾瀯閫犲璞?銆傛墍浠ワ紝涓庝笂渚嬫渶鐩鎬技鐨勪緥瀛愬涓嬶細
import java.lang.reflect.*;
public class constructor2 {
    public constructor2() {
    }

    public constructor2(int a, int b) {
        System.out.println("a = " + a + " b = " + b);
    }

    public static void main(String args[]) {
        try {
            Class cls = Class.forName("constructor2");
            Class partypes[] = new Class[2];
            partypes[0] = Integer.TYPE;
            partypes[1] = Integer.TYPE;
            Constructor ct = cls.getConstructor(partypes);
            Object arglist[] = new Object[2];
            arglist[0] = new Integer(37);
            arglist[1] = new Integer(47);
            Object retobj = ct.newInstance(arglist);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}

鏍規嵁鎸囧畾鐨勫弬鏁扮被鍨嬫壘鍒扮浉搴旂殑鏋勯犲嚱鏁板茍鎵ц瀹冿紝浠ュ垱寤轟竴涓柊鐨勫璞″疄渚嬨備嬌鐢ㄨ繖縐嶆柟娉曞彲浠ュ湪紼嬪簭榪愯鏃跺姩鎬佸湴鍒涘緩瀵硅薄錛岃屼笉鏄湪緙栬瘧鐨勬椂鍊欏垱寤哄璞★紝榪欎竴鐐歸潪甯告湁浠峰箋?/p>


8.鏀瑰彉瀛楁(鍩?鐨勫?br /> reflection 鐨勮繕鏈変竴涓敤澶勫氨鏄敼鍙樺璞℃暟鎹瓧孌電殑鍊箋俽eflection 鍙互浠庢鍦ㄨ繍琛岀殑紼嬪簭涓牴鎹悕縐版壘鍒板璞$殑瀛楁騫舵敼鍙樺畠錛屼笅闈㈢殑渚嬪瓙鍙互璇存槑榪欎竴鐐癸細
import java.lang.reflect.*;
public class field2 {
    public double d;
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("field2");
            Field fld = cls.getField("d");
            field2 f2obj = new field2();
            System.out.println("d = " + f2obj.d);
            fld.setDouble(f2obj, 12.34);
            System.out.println("d = " + f2obj.d);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


榪欎釜渚嬪瓙涓紝瀛楁 d 鐨勫艱鍙樹負浜?12.34銆?br /> 9.浣跨敤鏁扮粍
鏈枃浠嬬粛鐨?reflection 鐨勬渶鍚庝竴縐嶇敤娉曟槸鍒涘緩鐨勬搷浣滄暟緇勩傛暟緇勫湪 Java 璇█涓槸涓縐嶇壒孌婄殑綾葷被鍨嬶紝涓涓暟緇勭殑寮曠敤鍙互璧嬬粰 Object 寮曠敤銆傝瀵熶笅闈㈢殑渚嬪瓙鐪嬬湅鏁扮粍鏄庝箞宸ヤ綔鐨勶細
import java.lang.reflect.*;
public class array1 {
    public static void main(String args[]) {
        try {
            Class cls = Class.forName("java.lang.String");
            Object arr = Array.newInstance(cls, 10);
            Array.set(arr, 5, "this is a test");
            String s = (String) Array.get(arr, 5);
            System.out.println(s);
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}


渚嬩腑鍒涘緩浜?10 涓崟浣嶉暱搴︾殑 String 鏁扮粍錛屼負絎?5 涓綅緗殑瀛楃涓茶祴浜嗗鹼紝鏈鍚庡皢榪欎釜瀛楃涓蹭粠鏁扮粍涓彇寰楀茍鎵撳嵃浜嗗嚭鏉ャ?br />
涓嬮潰榪欐浠g爜鎻愪緵浜嗕竴涓洿澶嶆潅鐨勪緥瀛愶細
import java.lang.reflect.*;
public class array2 {
    public static void main(String args[]) {
        int dims[] = new int[]{5, 10, 15};
        Object arr = Array.newInstance(Integer.TYPE, dims);
        Object arrobj = Array.get(arr, 3);
        Class cls = arrobj.getClass().getComponentType();
        System.out.println(cls);
        arrobj = Array.get(arrobj, 5);
        Array.setInt(arrobj, 10, 37);
        int arrcast[][][] = (int[][][]) arr;
        System.out.println(arrcast[3][5][10]);
    }
}
渚嬩腑鍒涘緩浜嗕竴涓?5 x 10 x 15 鐨勬暣鍨嬫暟緇勶紝騫朵負澶勪簬 [3][5][10] 鐨勫厓绱犺祴浜嗗間負 37銆傛敞鎰忥紝澶氱淮鏁扮粍瀹為檯涓婂氨鏄暟緇勭殑鏁扮粍錛屼緥濡傦紝絎竴涓?Array.get 涔嬪悗錛宎rrobj 鏄竴涓?10 x 15 鐨勬暟緇勩傝繘鑰屽彇寰楀叾涓殑涓涓厓绱狅紝鍗抽暱搴︿負 15 鐨勬暟緇勶紝騫朵嬌鐢?Array.setInt 涓哄畠鐨勭 10 涓厓绱犺祴鍊箋?br />
娉ㄦ剰鍒涘緩鏁扮粍鏃剁殑綾誨瀷鏄姩鎬佺殑錛屽湪緙栬瘧鏃跺茍涓嶇煡閬撳叾綾誨瀷銆?/p>

鐏劙鍑烘灄 2008-03-27 17:35 鍙戣〃璇勮
]]>
EL琛ㄨ揪寮?http://www.tkk7.com/blameswood/articles/189079.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:34:00 GMThttp://www.tkk7.com/blameswood/articles/189079.htmlhttp://www.tkk7.com/blameswood/comments/189079.htmlhttp://www.tkk7.com/blameswood/articles/189079.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189079.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189079.html
    1. EL鑴氭湰璇█鐨勯厤緗拰鏀寔錛?
      瀵逛簬涓涓崟涓狫SP欏甸潰錛屼綘鍙互浣跨敤瀹氫箟page鎸囦護鏉ヨ緗甹sp欏甸潰鏄惁鏀寔EL銆傞粯璁ゆ槸鏀寔EL(濡傛灉瑕侀〉闈笉鏀寔EL錛岃璁劇疆涓?span class="myp11">isELIgnored=true;
    1. <%@ page isELIgnored錛?true|false"%>
    1. 瀵逛簬鏁翠釜JSP搴旂敤紼嬪簭錛岃淇敼WEB.XML閰嶇疆(tomcat5.0.16榛樿鏄敮鎸丒L鐨?;
    2. <jsp-property-group> 
      <description> For config the ICW sample application </description>
      <display-name>JSPConfiguration</display-name>
      <url-pattern>/jsp/datareset.jsp</url-pattern>
      <el-ignored>true< / el-ignored>
      <page-encoding>ISO-8859-1</page-encoding>
      <scripting-invalid>true</scripting-invalid>
      <include-prelude>/jsp/prelude.jspf</include-prelude>
      <include-coda>/jsp/coda.jspf</include-coda>
      </jsp-property-group>
    1. 綆楁湳榪愮畻絎︽紨紺猴細
      浠ヤ笅鏄疎L榪愮畻絎﹀垪琛紝鍏朵腑empty鍙互媯鏌ユ煇涓兼槸鍚︿負絀?
    1. 榪愮畻絎?/strong>
    璇存槑 榪愮畻絎?/strong> 璇存槑

    +

    鍔?/p>

    > 鎴?gt 澶т簬

    -

    鍑?/p>

    <= 鎴?le 灝忎簬絳変簬

    *

    涔?/p>

    >= 鎴?ge 澶т簬絳変簬

    / 鎴?div

    闄?/p>

    && 鎴?and 閫昏緫涓?/td>

    % 鎴?mod

    妯★紙姹備綑錛?/p>

    || 鎴?or 閫昏緫鎴?/td>

    == 鎴?=

    絳変簬

    ! 鎴?not 閫昏緫闈?/td>

    != 鎴?!=

    涓嶇瓑浜?/p>

    empty 媯鏌ユ槸鍚︿負絀哄?/td>

    < 鎴?lt

    灝忎簬

    a ? b : c 鏉′歡榪愮畻絎?/td>
    1. EL琛ㄨ揪寮忎嬌鐢ㄧ畝鍗?鍦ㄧ綉欏典腑"\${}"琛ㄧず鏄疎L琛ㄨ揪寮忋俓${1+1} 鏄劇ず涓?2
    1. EL綆楁湳琛ㄨ揪寮?/strong>
    榪愮畻緇撴灉 EL 鍏崇郴榪愮畻琛ㄨ揪寮?/strong> 榪愮畻緇撴灉
    ${1} 1 ${1 < 2} true
    ${1 + 2} 3 ${1 lt 2} true
    ${1.2 + 2.3} 3.5 ${1 > (4/2)} false
    ${-4 - 2} -6 ${4.0 >= 3} true
    ${21 * 2} 42 ${4.0 ge 3} true
    ${10%4} 2 ${100.0 eq 100} true
    ${10 mod 4} 2 ${(10*10) != 100} false
    ${(1==2) ? 3 : 4} 4 ${(10*10) ne 100} false

     

    1. 闅愬惈瀵硅薄鏁版嵁婕旂ず錛?/font>
    2. EL 琛ㄨ揪寮忓畾涔変簡11涓殣鍚璞?浣跨敤榪?1涓璞″彲浠ュ緢鏂逛究鐨勮鍙栧埌session,cookie,HttpHeader,鐢ㄦ埛鎻愪氦琛ㄥ崟(param)絳?
    1. 闅愬惈瀵硅薄

    鍐呭

    applicationScope

    搴旂敤紼嬪簭鑼冨洿鍐呯殑scoped鍙橀噺緇勬垚鐨勯泦鍚?/p>

    cookie

    鎵鏈塩ookie緇勬垚鐨勯泦鍚?/p>

    header

    HTTP璇鋒眰澶撮儴錛屽瓧絎︿覆

    headerValues

    HTTP璇鋒眰澶撮儴錛屽瓧絎︿覆闆嗗悎

    initParam

    鍏ㄩ儴搴旂敤紼嬪簭鍙傛暟鍚嶇粍鎴愮殑闆嗗悎

    pageContext

    褰撳墠欏甸潰鐨刯avax.servlet.jsp.PageContext瀵硅薄

    pageScope

    欏甸潰鑼冨洿鍐呮墍鏈夊璞$殑闆嗗悎

    param

    鎵鏈夎姹傚弬鏁板瓧絎︿覆緇勬垚鐨勯泦鍚?/p>

    paramValues

    鎵鏈変綔涓哄瓧絎︿覆闆嗗悎鐨勮姹傚弬鏁?/p>

    requestScope

    鎵鏈夎姹傝寖鍥寸殑瀵硅薄鐨勯泦鍚?/p>

    sessionScope

    鎵鏈変細璇濊寖鍥寸殑瀵硅薄鐨勯泦鍚?/p>

    1. 涓嬮潰鏄幏鍙朒TTP璁塊棶澶撮儴鏁版嵁鍜岀敤鎴鋒彁浜ゆ暟鎹殑紺轟緥
    1. EL琛ㄨ揪寮?
    榪愮畻緇撴灉
    ${header["host"]}
    榪欓噷寰楀埌HTTP榪炴帴澶撮儴鐨刪ost鍊?/td>
    ${header["accept"]} 榪欓噷鑾峰緱HTTP澶撮儴鐨刟ccept鍊?/td>
    ${header["user-agent"]} 榪欓噷鑾峰緱HTTP澶撮儴鐨剈ser-agent鍊?/td>
    浠ヤ笅鍙互璇誨彇鐢ㄦ埛鎻愪氦鐨勪俊鎭?鍋囪鐢ㄦ埛鎻愪氦淇℃伅涓??name=myname&alies=now.net.cn(榪欓噷鏈変袱縐嶈闂柟寮?涓縐嶆槸浣跨敤[]鏉ヨ繘琛岃闂?鍙﹀涓縐嶆槸浣跨敤" "鏉ヨ繘琛岃闂紝涓ょ璁塊棶鏁堟灉鏄竴鏍風殑銆?
    ${param["name"] }  myname
    ${param.name}  myname
    ${param["alies"] }  now.net.cn
    ${param.alies} now.net.cn

     

    eg:      ${empty(requestScope.backpath)?'admin_TcAction.do?method=findFinish':requestScope.backpath}



  • ]]>
    Hibernate one-to-many瀛︿範絎旇 http://www.tkk7.com/blameswood/articles/189078.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:33:00 GMThttp://www.tkk7.com/blameswood/articles/189078.htmlhttp://www.tkk7.com/blameswood/comments/189078.htmlhttp://www.tkk7.com/blameswood/articles/189078.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189078.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189078.htmlEmylinkUpcode  1...................n  EmylinkUlink   涓瀵瑰鍏崇郴

    1.hbm.xml鎻忚堪
      EmylinkUpcode.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    " <hibernate-mapping package="hbm">
     <class name="EmylinkUpcode" table="emylink_upcode">
      <id
       name="id" type="integer" column="plink_code"
      >
       <generator class="org.hibernate.id.IncrementGenerator"/>
      </id>

      <property
       name="account"
       column="account"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="plinkName"
       column="plink_name"
       type="string"
       not-null="true"
       length="50"
      />
      <property
       name="plinkExplain"
       column="plink_explain"
       type="string"
       not-null="false"
       length="100"
      />
      <property
       name="typeCode"
       column="type_code"
       type="string"
       not-null="false"
       length="8"
      />
     
      <set name="emylinkUlinks" inverse="true" lazy="true"  cascade="all"
           <key column="plink_code"/>
          <one-to-many class="EmylinkUlink"/>
      </set>

     </class> 
    </hibernate-mapping>

    鎿嶄綔綰ц仈錛?font color="#800080">cascade錛夊叧緋匯?br /> 鍙夊鹼細
    all : 鎵鏈夋儏鍐典笅鍧囪繘琛岀駭鑱旀搷浣溿?br /> none錛氭墍鏈夋儏鍐典笅鍧囦笉榪涜綰ц仈鎿嶄綔銆?br /> save-update:鍦ㄦ墽琛宻ave-update鏃?br /> 榪涜綰ц仈鎿嶄綔銆?br /> delete錛氬湪鎵цdelete鏃惰繘琛岀駭鑱旀搷浣溿?/span>

     EmylinkUlink.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD//EN"
     "

    <hibernate-mapping package="hbm">
     <class
      name="EmylinkUlink"
      table="emylink_ulink"
     >
      <id
       name="id"
       type="integer"
       column="id"
      >
       <generator class="org.hibernate.id.IncrementGenerator"/>
      </id>

      <property
       name="account"
       column="account"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="link"
       column="link"
       type="string"
       not-null="true"
       length="200"
      />
      <property
       name="linkName"
       column="link_name"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="explain"
       column="explain"
       type="string"
       not-null="false"
       length="500"
      />
      <property
       name="indate"
       column="indate"
       type="date"
       not-null="true"
       length="16"
       insert="false"                //涓嶅弬涓庢彃鍏ユ搷浣?br />    update="false"             //涓嶅弬涓庢洿鏂版搷浣?br />   />
      <property
       name="sort"
       column="sort"
       type="string"
       not-null="false"
       length="3"
      />
      <property
       name="private"
       column="private"
       type="string"
       not-null="false"
       length="1"
      />
      <many-to-one
       name="plinkCode"
       column="plink_code"
       class="EmylinkUpcode"
       not-null="true"
      >
      </many-to-one>
     </class> 
    </hibernate-mapping>


    2.POJO瀵硅薄
      EmylinkUpcode.java
    //鐣?br />     // primary key
        private java.lang.Integer id;

        
    // fields
        private java.lang.String account;
        
    private java.lang.String plinkName;
        
    private java.lang.String plinkExplain;
        
    private java.lang.String typeCode;

        
    // collections
        private java.util.Set<hbm.EmylinkUlink> emylinkUlinks;

    //鐣?/span>

      EmylinkUlink.java
    //鐣?/span>
    private int hashCode = Integer.MIN_VALUE;

        
    // primary key
        private java.lang.Integer id;

        
    // fields
        private java.lang.String account;
        
    private java.lang.String link;
        
    private java.lang.String linkName;
        
    private java.lang.String explain;
        
    private java.util.Date indate;
        
    private java.lang.String sort;
        
    private java.lang.String m_private;

        
    // many to one
        private hbm.EmylinkUpcode plinkCode;
    //鐣?/span>

    閫氳繃EmylinkUpcode鍔犺澆EmylinkUlink(娉ㄦ剰EmylinkUpcode.hbm.xml涓0鏄庝簡寤惰繜鍔犺澆)
    Session session = EmylinkSessionFactory.currentSession();
             Query q 
    = session.createQuery("from EmylinkUpcode where account='derek'");
                    List l 
    = q.list();
                   
                       EmylinkUpcode eu 
    =  (EmylinkUpcode)l.get(0);
                       System.out.println(eu.getPlinkName());
                       
    //Hibernate.initialize(eu.getEmylinkUlinks());//褰撳歡榪熷姞杞絣azy=true鏃訛紝寮哄埗鍔犺澆鍙婅仈瀵硅薄
                       
                       Set ul 
    = eu.getEmylinkUlinks(); 
                                         
                       Iterator
    <EmylinkUlink> it = ul.iterator();//lazy=true騫朵笖涓嶄嬌鐢ㄥ己鍒跺姞杞斤紝鍒欐鏃舵墠鐪熺湡鍙婅仈鍔犺澆
                       
                       
    while(it.hasNext()){
                        System.out.println(it.next().getLinkName());
                       }
     EmylinkSessionFactory.closeSession();  

    * 寤惰繜鍔犺澆   
       濡傛灉lazy=true(寤惰繜鍔犺澆), 鍔犺澆EmylinkUpcode鏃?hibernate涓嶄細绔嬪嵆鍔犺澆EmylinkUlink,鍙湁褰?Iterator<EmylinkUlink> it = ul.iterator();)鎵ц鏃?hibernate鎵嶅姞杞紼mylinkUlink瀹炰緥; 濡傛灉鍦ㄥ姞杞藉墠灝卞叧闂璼ession,鍒欐姤寮傚父LazyInitializationException ; 鍙互浣跨敤Hibernate.initialize(Object o)寮哄埗鍙婅仈鍔犺澆

    *J2SE5.0鐨勬硾鍨?

    public void setEmylinkUlinks (java.util.Set<hbm.EmylinkUlink> emylinkUlinks) {
            
    this.emylinkUlinks = emylinkUlinks;
        }
    Iterator<EmylinkUlink> it = ul.iterator();                   
                       
    while(it.hasNext()){
                        EmylinkUlink el 
    = it.next();//鏃犻渶榪涜寮哄埗綾誨瀷杞崲
                        System.out.println(el.getLinkName());
                       }

    emylinkUlinks闆嗗悎涓彧鑳藉瓨鏀綞mylinkUlink瀵硅薄錛屼粠闆嗗悎涓幏鍙栧璞℃棤闇鍐嶇被鍨嬭漿鎹?br />  
    struts+spring+hibernate鍏充簬hibernate涓璴azy="true"鐨勯棶棰樸倃eb.xml涓敤   

              <filter>   
                      
    <filter-name>openSessionInViewFilter</filter-name>   
                      
    <filter-class>org.springframework.orm.hibernate.support.OpenSessionInViewFilter</filter-class>   
              
    </filter>   
        
              
    <filter-mapping>   
                      
    <filter-name>openSessionInViewFilter</filter-name>   
                      
    <url-pattern>*.do</url-pattern>   
              
    </filter-mapping>

      瀹冪殑鍘熺悊灝辨槸錛氭墦寮欏甸潰鐨勬椂鍊欐墦寮session錛屼竴鐩村埌欏甸潰瑁呰澆瀹屾瘯鎵嶅叧闂璼ession錛岃繖鏍峰氨瑙e喅浜唋azy="true"鏃秙ession   is   closed鐨勯棶棰樸?br />   鍏充簬OpenSessionInViewFilter 寤惰繜鍔犺澆澶辨晥闂 http://www.javaeye.com/topic/15057
              OpenSessionInView鐨勬晥鐜囬棶棰?nbsp; http://www.javaeye.com/topic/17501



    鐏劙鍑烘灄 2008-03-27 17:33 鍙戣〃璇勮
    ]]>linux涓嬮厤緗甤vs鏈嶅姟鍣?http://www.tkk7.com/blameswood/articles/189077.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:32:00 GMThttp://www.tkk7.com/blameswood/articles/189077.htmlhttp://www.tkk7.com/blameswood/comments/189077.htmlhttp://www.tkk7.com/blameswood/articles/189077.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189077.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189077.html

    涓 CVS鏈嶅姟鍣?/a>鐨勫畨瑁咃細
    1銆傛煡鐪嬩綘鐨勬搷浣滅郴緇熶笂鏄惁瀹夎浜咰VS錛?br /> #> rpm -qa|grep cvs

    濡傛灉娌℃湁瀹夎浣犲彲浠ュ湪Redhat 絎?寮犲厜鐩樹笂鎵懼埌

    2銆傚緩绔媍vs鐢ㄦ埛緇勶細

    #> groupadd cvs

    3銆傚緩绔媍vs緇勭殑cvsroot鐢ㄦ埛鍜屾墍灞炵殑鐩綍錛?

    #> useradd -g cvs -G cvs –d /cvsroot cvsroot

    4銆備負cvsroot鐢ㄦ埛娣誨姞瀵嗙爜錛?

    #> passwd cvsroot

    5銆傛敼鍙?/cvsroot/ 鐨勭洰褰曞睘鎬э細

    #> chmod –R 770 /cvsroot

    6銆傛敼鍙樼敤鎴風櫥闄嗚韓浠斤細

    #> su cvsroot

    7銆傚紑濮嬪垱寤哄崟涓」鐩細

    #> cd /cvsroot
    #> mkdir project1
    #>mkdir project2
    8銆傚紑濮嬪緩绔嬩粨搴擄細

    #> cvs –d /cvsroot/project1 init
    #> cvs –d /cvsroot/project2 init
    #> chmod –R 770 ./project1/ ./project2/

    9銆傚緩绔婥VS鏈嶅姟鍚姩鏂囦歡錛屾垜浠嬌鐢▁inetd鏂瑰紡錛?

    #> [Crtl]+[d] 鍒囨崲鍒皉oot鐢ㄦ埛韜喚
    #> cd /etc/xinetd.d
    #> vi cvspserver

    service cvspserver 

    disable 
    =  no 
    flags 
    =  REUSE 
    socket_type 
    =  stream 
    wait 
    =  no 
    user 
    =  root 
    server
    =   / usr / bin / cvs 
    server_args
    =   - -- allow - root =/ home2 / cvsroot / project1  -- allow - root =/ home2 / cvsroot / project2 pserver 
    log_on_failure 
    +=  USERID 
    }

    娉細鐢變簬xinetd鐨剆erver_args闀垮害闄愬埗,褰撲綘鎯寵繍琛屽緢澶氱殑鍗曚釜浠撳簱鐨勬椂鍊?鍙互榪欎箞鍋氾細

    #> vi cvspserver

    service cvspserver 

    disable 
    =  no 
    flags 
    =  REUSE 
    socket_type 
    =  stream 
    wait 
    =  no 
    user 
    =  root 
    server 
    =   / cvsroot / cvs.run 
    log_on_failure 
    +=  USERID 
    }

     

    緙栧啓cvs.run鑴氭湰

    #> vi /cvsroot/cvs.run

    # !/ bin / bash 
    / usr / bin / cvs  -
    -- allow - root =/ cvsroot / project1 
    -- allow - root =/ cvsroot / project2 
    pserver

    #>chmod +x /cvsroot/cvs.run

    10銆傚姞鍏vs鏈嶅姟錛?

    #>vi /etc/services

    cvspserver 2401/tcp #pserver cvs service
    cvspserver 2401/udp #pserver cvs service
    11銆傚惎鍔╟vs鏈嶅姟錛?

    #> /etc/init.d/xinetd restart

    12銆傛鏌vspserver鏈嶅姟鏄惁宸茬粡鍚姩錛?

    #> netstat -l |grep cvspserver
    搴旇鏈夊涓嬬粨鏋滐細

    tcp 0 0 *:cvspserver *:* LISTEN

    浜屻侰VS鏈嶅姟鐨勭敤鎴風鐞嗭細

    涓婇潰鎴戜滑宸茬粡寤虹珛浜唒roject1鍜宲roject2涓や釜CVS浠撳簱錛屼笅闈㈡垜浠垎鍒粰涓や釜浠撳簱寤虹珛cvs鐢ㄦ埛銆?

    13銆傚垱寤哄彲浠ョ櫥闄哻vs鏈嶅姟鍣?/a>鐨勭敤鎴峰悕鍜屽瘑鐮侊細

    #> su cvsroot
    #> vi /cvsroot/project1/CVSROOT/passwd

    trotter:*****:cvsroot
    mimi:*****:cvsroot

    #>vi /cvsroot/project2/CVSROOT/passwd

    trotter:*****:cvsroot
    gary:*****:cvsroot

    榪欎袱涓枃浠剁殑鎰忔濇槸鏈塼rotter錛宮imi錛実ary涓変釜cvs鐢ㄦ埛錛宮imi鎷ユ湁project1鐨勪嬌鐢ㄦ潈闄愶紝gary鎷ユ湁project2鐨勪嬌鐢ㄦ潈闄愶紝trotter鎷ユ湁project1鍜宲roject2鐨勪嬌鐢ㄦ潈闄愩傜櫥闄嗗悗鐨勬潈闄愭槸cvsroot鏉冮檺銆?br /> 娉ㄦ剰錛氳繖閲岀殑cvs鐢ㄦ埛鍜岀郴緇熺敤鎴鋒槸涓嶅悓鐨勩?

    14銆?****涓哄瘑鐮侊紝鐢變互涓嬫枃浠剁敓鎴愶細

    #> vi /cvsroot/passwd.pl

    # !/ usr / bin / perl 
    srand (time()); 
    my $randletter 
    =   " (int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97)) "
    my $salt 
    =  sprintf ( " %c%c " , eval $randletter, eval $randletter); 
    my $plaintext 
    =  shift; 
    my $crypttext 
    =  crypt ($plaintext, $salt); 
    print 
    " ${crypttext} " ;

    #>chmod a+x /cvsroot/passwd.pl

    15銆傚鏋滀綘鎯崇敓鎴愪竴涓瘑鐮佹槸“123456”錛屽垯錛?

    #> /cvsroot/passwd.pl “123456”

    鍥炶濺鍗沖彲寰楀埌鍔犲瘑瀵嗙爜,鐢ㄥ叾鏇挎崲passwd鏂囦歡涓殑*****

    16銆侽k錛宑vs鐜板湪宸茬粡鍏ㄩ儴瀹夎瀹屾垚浜嗭紝濡傛灉浣犳兂璁╀竴涓敤鎴鋒嫢鏈塸roject1鐨勬潈闄愶紝浣犲氨鍦?cvsroot/project1/CVSROOT/passwd涓粰浠栧姞鍏ヤ竴涓敤鎴鳳紱濡傛灉浣犳兂璁╀竴涓敤鎴峰悓鏃跺叿鏈塸roject1鍜宲roject2鐨勬潈闄愶紝浣犲氨緇?cvsroot/project1/CVSROOT/passwd鍜?cvsroot/project2/CVSROOT/passwd閲岀粰浠栧姞涓涓敤鎴峰悕鍜屽瘑鐮佺浉鍚岀殑鐢ㄦ埛鍗沖彲銆傛渶鍚庯紝鎴戜滑璇曠敤涓涓嬶細

    #> cvs -d :pserver:trotter@192.168.1.200:/cvsroot/project1 login

    鏁插叆鍛戒護鍥炶濺鍚庢彁紺鴻緭鍏rotter鐨勫瘑鐮?浣犳寜鐓ц嚜宸辮緗殑瀵嗙爜杈撳叆,濡傛灉娌℃湁浠涔堥敊璇俊鎭嚭鐜板氨鏄垚鍔熶簡



    鐏劙鍑烘灄 2008-03-27 17:32 鍙戣〃璇勮
    ]]>
    Spring 瀹氭椂鍣?http://www.tkk7.com/blameswood/articles/SpringTimer.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:31:00 GMThttp://www.tkk7.com/blameswood/articles/SpringTimer.htmlhttp://www.tkk7.com/blameswood/comments/189075.htmlhttp://www.tkk7.com/blameswood/articles/SpringTimer.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189075.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189075.html<!--1.綆鍗曞畾鏃?->
    <
    bean id = " myTask "   class = " usish.po.pub.MyTask " >     <!--鑷繁瀹氫箟鐨勪換鍔xtends TimerTask -->
      
    < property name = " generatPo " >
        
    < ref local = " generatPO " />
      
    </ property >
      
    < property name = " importData " >
        
    < ref local = " importData " />
      
    </ property >
    </ bean >

    < bean id = " timer "   class = " org.springframework.scheduling.timer.TimerFactoryBean " >
      
    < property name = " scheduledTimerTasks " >
        
    < list >
          
    < ref local = " scheduledTimerTask_1 " /> <!--瀹氭椂鍣ㄧ殑浠誨姟閾?->
        
    </ list >
      
    </ property >
    </ bean >

    < bean id = " scheduledTimerTask_1 "   class = " org.springframework.scheduling.timer.ScheduledTimerTask " > <!--浠誨姟閾懼惎鍔ㄤ換鍔?->
      
    < property name = " timerTask " >
        
    < ref local = " myTask " />
      
    </ property >
      
    < property name = " delay " >
        
    < value > 1000 </ value >
      
    </ property >
      
    < property name = " period " >
        
    < value > 50000 </ value >
      
    </ property >
    </ bean >

    <!--2.浣跨敤Quartz瀹氭椂-->
    <!-- scheduler -->
     <bean id="cacheClearStar" class="com.ztgame.memcached.CacheClearStar" />
     <bean id="cacheClearStarJob"
         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject">
                 <ref local="cacheClearStar" />
            </property>
            <property name="targetMethod">
                <value>clear</value>
            </property>
     </bean>
        <bean id="cacheClearStarTrigger"
            class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail">
                <ref local="cacheClearStarJob" />
            </property>
            <property name="cronExpression">
                <value>0 0 0 * * ?</value>
            </property>
      </bean>
      <bean id="scheduler"
             class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
             <property name="triggers">
                 <ref local="cacheClearStarTrigger" />
             </property>
      </bean>
     <!-- scheduler end -->

    涓涓猚ron琛ㄨ揪寮忔湁鑷沖皯6涓紙涔熷彲鑳?涓級鏈夌┖鏍煎垎闅旂殑鏃墮棿鍏冪礌銆?br /> 鎸夐『搴忎緷嬈′負
    1.縐掞紙0~59錛?
    2.鍒嗛挓錛?~59錛?
    3.灝忔椂錛?~23錛?
    4.澶╋紙鏈堬級錛?~31錛屼絾鏄綘闇瑕佽冭檻浣犳湀鐨勫ぉ鏁幫級
    5.鏈堬紙0~11錛?
    6.澶╋紙鏄熸湡錛夛紙1~7 1=SUN 鎴?SUN錛孧ON錛孴UE錛學ED錛孴HU錛孎RI錛孲AT錛?
    7.騫翠喚錛?970錛?099錛?/span>

    鍏朵腑姣忎釜鍏冪礌鍙互鏄竴涓?濡?),涓涓繛緇尯闂?9-12),涓涓棿闅旀椂闂?8-18/4)(/琛ㄧず姣忛殧4灝忔椂),涓涓垪琛?1,3,5),閫氶厤絎︺?br /> 鐢變簬"鏈堜喚涓殑鏃ユ湡"鍜?鏄熸湡涓殑鏃ユ湡"榪欎袱涓厓绱犱簰鏂ョ殑,蹇呴』瑕佸鍏朵腑涓涓緗?.

    0 0 10,14,16 * * ? 姣忓ぉ涓婂崍10鐐癸紝涓嬪崍2鐐癸紝4鐐?br /> 0 0/30 9-17 * * ??? 鏈濅節鏅氫簲宸ヤ綔鏃墮棿鍐呮瘡鍗婂皬鏃?br /> 0 0 12 ? * WED 琛ㄧず姣忎釜鏄熸湡涓変腑鍗?2鐐?

    鏈変簺瀛愯〃杈懼紡鑳藉寘鍚竴浜涜寖鍥存垨鍒楄〃
    渚嬪錛氬瓙琛ㄨ揪寮忥紙澶╋紙鏄熸湡錛夛級鍙互涓?“MON-FRI”錛?#8220;MON錛學ED錛孎RI”錛?#8220;MON-WED,SAT”

    “*”瀛楃浠h〃鎵鏈夊彲鑳界殑鍊?
    鍥犳錛?#8220;*”鍦ㄥ瓙琛ㄨ揪寮忥紙鏈堬級閲岃〃紺烘瘡涓湀鐨勫惈涔夛紝“*”鍦ㄥ瓙琛ㄨ揪寮忥紙澶╋紙鏄熸湡錛夛級琛ㄧず鏄熸湡鐨勬瘡涓澶?

    “/”瀛楃鐢ㄦ潵鎸囧畾鏁板肩殑澧為噺
    渚嬪錛氬湪瀛愯〃杈懼紡錛堝垎閽燂級閲岀殑“0/15”琛ㄧず浠庣0鍒嗛挓寮濮嬶紝姣?5鍒嗛挓 ;
    鍦ㄥ瓙琛ㄨ揪寮忥紙鍒嗛挓錛夐噷鐨?#8220;3/20”琛ㄧず浠庣3鍒嗛挓寮濮嬶紝姣?0鍒嗛挓錛堝畠鍜?#8220;3錛?3錛?3”錛夌殑鍚箟涓鏍?

    “錛?#8221;瀛楃浠呰鐢ㄤ簬澶╋紙鏈堬級鍜屽ぉ錛堟槦鏈燂級涓や釜瀛愯〃杈懼紡錛岃〃紺轟笉鎸囧畾鍊?
    褰?涓瓙琛ㄨ揪寮忓叾涓箣涓琚寚瀹氫簡鍊間互鍚庯紝涓轟簡閬垮厤鍐茬獊錛岄渶瑕佸皢鍙︿竴涓瓙琛ㄨ揪寮忕殑鍊艱涓?#8220;錛?#8221;

    “L” 瀛楃浠呰鐢ㄤ簬澶╋紙鏈堬級鍜屽ぉ錛堟槦鏈燂級涓や釜瀛愯〃杈懼紡錛屽畠鏄崟璇?#8220;last”鐨勭緝鍐?

    浣嗘槸瀹冨湪涓や釜瀛愯〃杈懼紡閲岀殑鍚箟鏄笉鍚岀殑銆?

    鍦ㄥぉ錛堟湀錛夊瓙琛ㄨ揪寮忎腑錛?#8220;L”琛ㄧず涓涓湀鐨勬渶鍚庝竴澶?,
    鍦ㄥぉ錛堟槦鏈燂級鑷〃杈懼紡涓紝“L”琛ㄧず涓涓槦鏈熺殑鏈鍚庝竴澶╋紝涔熷氨鏄疭AT

    濡傛灉鍦?#8220;L”鍓嶆湁鍏蜂綋鐨勫唴瀹癸紝瀹冨氨鍏鋒湁鍏朵粬鐨勫惈涔変簡

    渚嬪錛?#8220;6L”琛ㄧず榪欎釜鏈堢殑鍊掓暟絎紪澶╋紝“錛︼疾錛╋棘”琛ㄧず榪欎釜鏈堢殑鏈鍚庝竴涓槦鏈熶簲

    娉ㄦ剰錛氬湪浣跨敤“L”鍙傛暟鏃訛紝涓嶈鎸囧畾鍒楄〃鎴栬寖鍥達紝鍥犱負榪欎細瀵艱嚧闂



    鐏劙鍑烘灄 2008-03-27 17:31 鍙戣〃璇勮
    ]]>
    Spring+hibernate鍒嗛〉鏌ヨ http://www.tkk7.com/blameswood/articles/Springhibernate.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:25:00 GMThttp://www.tkk7.com/blameswood/articles/Springhibernate.htmlhttp://www.tkk7.com/blameswood/comments/189072.htmlhttp://www.tkk7.com/blameswood/articles/Springhibernate.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189072.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189072.html/**
         * TOP鏌ヨ
         * 
    @param  sql String
         * 
    @param  top int
         * 
    @return  List
         
    */
        
    public  List findTop(String sql,  int  top) {
          HibernateTemplate ht 
    =   this .getHibernateTemplate();
          ht.setMaxResults(top);
          
    return  ht.find(sql);
        }

        
    /**
         * 鍒嗛〉鏌ヨ
         * 
    @param  sql String
         * 
    @param  firstRow int
         * 
    @param  maxRow int
         * 
    @return  List
         
    */
        
    public  List findPage( final  String sql, final   int  firstRow, final   int  maxRow) {
          
    return   this .getHibernateTemplate().executeFind( new  HibernateCallback(){
                
    public  Object doInHibernate(Session session)  throws  SQLException,
                        HibernateException {
                   Query q 
    =  session.createQuery(sql);
                   q.setFirstResult(firstRow);
                   q.setMaxResults(maxRow);
                   
    return  q.list();
                   }
            });      
        }


    鐏劙鍑烘灄 2008-03-27 17:25 鍙戣〃璇勮
    ]]>
    Spring閰嶇疆鎬葷粨http://www.tkk7.com/blameswood/articles/Spring.html鐏劙鍑烘灄鐏劙鍑烘灄Thu, 27 Mar 2008 09:08:00 GMThttp://www.tkk7.com/blameswood/articles/Spring.htmlhttp://www.tkk7.com/blameswood/comments/189064.htmlhttp://www.tkk7.com/blameswood/articles/Spring.html#Feedback0http://www.tkk7.com/blameswood/comments/commentRss/189064.htmlhttp://www.tkk7.com/blameswood/services/trackbacks/189064.html闃呰鍏ㄦ枃

    鐏劙鍑烘灄 2008-03-27 17:08 鍙戣〃璇勮
    ]]>
    主站蜘蛛池模板: 美女裸免费观看网站| 青青草原1769久久免费播放| 亚洲国产中文v高清在线观看| 精精国产www视频在线观看免费| 亚洲午夜视频在线观看| 成人免费视频小说| 久久成人永久免费播放| 亚洲国产亚洲综合在线尤物| 国产91在线免费| 久久WWW免费人成一看片| 苍井空亚洲精品AA片在线播放| 亚洲av综合avav中文| 免费无码又爽又刺激高潮| 三级毛片在线免费观看| 亚洲日本在线电影| 国产亚洲欧洲精品| 国产成人免费A在线视频| 中文字幕视频免费| 一区二区3区免费视频| 亚洲Av高清一区二区三区| 亚洲熟妇无码AV在线播放| 在线播放高清国语自产拍免费| 最新国产乱人伦偷精品免费网站| 激情婷婷成人亚洲综合| 亚洲精品韩国美女在线| 久久亚洲国产精品五月天婷| 午夜视频在线在免费| 18禁美女黄网站色大片免费观看| 一区二区三区精品高清视频免费在线播放| 亚洲第一成年人网站| 国产亚洲色婷婷久久99精品| 免费国内精品久久久久影院| 噼里啪啦电影在线观看免费高清 | 51午夜精品免费视频| 综合偷自拍亚洲乱中文字幕| 亚洲人色大成年网站在线观看| 日韩亚洲欧洲在线com91tv| 亚洲国产成人五月综合网| 国产一精品一aⅴ一免费| 最近中文字幕免费mv视频7 | 精品国产人成亚洲区|