锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品无码久久久久久曰,国产呻吟久久久久久久92,99热成人精品免费久久http://www.shnenglu.com/aaxron/璁板綍淇鐨勫嵃璁? zh-cnTue, 06 May 2025 21:17:22 GMTTue, 06 May 2025 21:17:22 GMT60鍗曟枃浠禔ES鍔犺В瀵嗙畻娉?/title><link>http://www.shnenglu.com/aaxron/archive/2021/08/30/217802.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Mon, 30 Aug 2021 13:39:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2021/08/30/217802.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/217802.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2021/08/30/217802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/217802.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/217802.html</trackback:ping><description><![CDATA[#pragma once   #include <stdint.h>  //for int8_t #include <string.h>  //for memcmp #include <wmmintrin.h> //for intrinsics for AES-NI //compile using gcc and following arguments: -g;-O0;-Wall;-msse2;-msse;-march=native;-maes //internal stuff   //macros #define DO_ENC_BLOCK(m,k) \     do{\      m = _mm_xor_si128  (m, k[ 0]); \      m = _mm_aesenc_si128 (m, k[ 1]); \      m = _mm_aesenc_si128 (m, k[ 2]); \      m = _mm_aesenc_si128 (m, k[ 3]); \      m = _mm_aesenc_si128 (m, k[ 4]); \      m = _mm_aesenc_si128 (m, k[ 5]); \      m = _mm_aesenc_si128 (m, k[ 6]); \      m = _mm_aesenc_si128 (m, k[ 7]); \      m = _mm_aesenc_si128 (m, k[ 8]); \      m = _mm_aesenc_si128 (m, k[ 9]); \      m = _mm_aesenclast_si128(m, k[10]);\     }while(0)   #define DO_DEC_BLOCK(m,k) \     do{\      m = _mm_xor_si128  (m, k[10+0]); \      m = _mm_aesdec_si128 (m, k[10+1]); \      m = _mm_aesdec_si128 (m, k[10+2]); \      m = _mm_aesdec_si128 (m, k[10+3]); \      m = _mm_aesdec_si128 (m, k[10+4]); \      m = _mm_aesdec_si128 (m, k[10+5]); \      m = _mm_aesdec_si128 (m, k[10+6]); \      m = _mm_aesdec_si128 (m, k[10+7]); \      m = _mm_aesdec_si128 (m, k[10+8]); \      m = _mm_aesdec_si128 (m, k[10+9]); \      m = _mm_aesdeclast_si128(m, k[0]);\     }while(0)   #define AES_128_key_exp(k, rcon) aes_128_key_expansion(k, _mm_aeskeygenassist_si128(k, rcon))   static __m128i aes_128_key_expansion(__m128i key, __m128i keygened) {     keygened = _mm_shuffle_epi32(keygened, _MM_SHUFFLE(3,3,3,3));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     return _mm_xor_si128(key, keygened); }   //public API static void aes128_load_key_enc_only(uint8_t *enc_key, __m128i *key_schedule) {     key_schedule[0] = _mm_loadu_si128((const __m128i*) enc_key);     key_schedule[1] = AES_128_key_exp(key_schedule[0], 0x01);     key_schedule[2] = AES_128_key_exp(key_schedule[1], 0x02);     key_schedule[3] = AES_128_key_exp(key_schedule[2], 0x04);     key_schedule[4] = AES_128_key_exp(key_schedule[3], 0x08);     key_schedule[5] = AES_128_key_exp(key_schedule[4], 0x10);     key_schedule[6] = AES_128_key_exp(key_schedule[5], 0x20);     key_schedule[7] = AES_128_key_exp(key_schedule[6], 0x40);     key_schedule[8] = AES_128_key_exp(key_schedule[7], 0x80);     key_schedule[9] = AES_128_key_exp(key_schedule[8], 0x1B);     key_schedule[10] = AES_128_key_exp(key_schedule[9], 0x36); }   static void aes128_load_key(uint8_t *enc_key, __m128i *key_schedule) {     aes128_load_key_enc_only(enc_key, key_schedule);       // generate decryption keys in reverse order.     // k[10] is shared by last encryption and first decryption rounds     // k[0] is shared by first encryption round and last decryption round (and is the original user key)     // For some implementation reasons, decryption key schedule is NOT the encryption key schedule in reverse order     key_schedule[11] = _mm_aesimc_si128(key_schedule[9]);     key_schedule[12] = _mm_aesimc_si128(key_schedule[8]);     key_schedule[13] = _mm_aesimc_si128(key_schedule[7]);     key_schedule[14] = _mm_aesimc_si128(key_schedule[6]);     key_schedule[15] = _mm_aesimc_si128(key_schedule[5]);     key_schedule[16] = _mm_aesimc_si128(key_schedule[4]);     key_schedule[17] = _mm_aesimc_si128(key_schedule[3]);     key_schedule[18] = _mm_aesimc_si128(key_schedule[2]);     key_schedule[19] = _mm_aesimc_si128(key_schedule[1]); }   static void aes128_enc(__m128i *key_schedule, uint8_t *plainText,uint8_t *cipherText) {     __m128i m = _mm_loadu_si128((__m128i *) plainText);     DO_ENC_BLOCK(m,key_schedule);     _mm_storeu_si128((__m128i *) cipherText, m); }   static void aes128_dec(__m128i *key_schedule, uint8_t *cipherText,uint8_t *plainText) {     __m128i m = _mm_loadu_si128((__m128i *) cipherText);     DO_DEC_BLOCK(m,key_schedule);     _mm_storeu_si128((__m128i *) plainText, m); }   //return 0 if no error //1 if encryption failed //2 if decryption failed //3 if both failed static int aes128_self_test(void) {     uint8_t plain[]  = {0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d, 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34};     uint8_t enc_key[] = {0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c};     uint8_t cipher[]  = {0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb, 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32};     uint8_t computed_cipher[16];     uint8_t computed_plain[16];     int out=0;     __m128i key_schedule[20];     aes128_load_key(enc_key,key_schedule);     aes128_enc(key_schedule,plain,computed_cipher);     aes128_dec(key_schedule,cipher,computed_plain);     if(memcmp(cipher,computed_cipher,sizeof(cipher))) out=1;     if(memcmp(plain,computed_plain,sizeof(plain))) out|=2;     return out; }<img src ="http://www.shnenglu.com/aaxron/aggbug/217802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2021-08-30 21:39 <a href="http://www.shnenglu.com/aaxron/archive/2021/08/30/217802.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Qt鐘舵佹満浠g爜渚嬪瓙http://www.shnenglu.com/aaxron/archive/2021/03/31/217647.html澶╀笅澶╀笅Wed, 31 Mar 2021 13:12:00 GMThttp://www.shnenglu.com/aaxron/archive/2021/03/31/217647.htmlhttp://www.shnenglu.com/aaxron/comments/217647.htmlhttp://www.shnenglu.com/aaxron/archive/2021/03/31/217647.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217647.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217647.html#include "stdafx.h"
#include "qtapplication03.h"
#include "ButtonChanged.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton button("State Machine");
QStateMachine machine;
ButtonChanged* bc = new ButtonChanged(&machine);
QState* s1 = new QState(&machine);
QState* s2 = new QState(&machine);
QState* s3 = new QState(&machine);
s1->assignProperty(&button, "geometry", QRect(100, 100, 120, 50));
s2->assignProperty(&button, "geometry", QRect(100, 100, 220, 50));
s3->assignProperty(&button, "geometry", QRect(100, 100, 320, 50));
s1->addTransition(&button, SIGNAL(clicked()), s2);
s2->addTransition(&button, SIGNAL(clicked()), s3);
s3->addTransition(&button, SIGNAL(clicked()), s1);
machine.setInitialState(s1);
machine.start();
button.show();
QObject::connect(s3, &QState::entered, bc, &ButtonChanged::changed);
return a.exec();
}


澶╀笅 2021-03-31 21:12 鍙戣〃璇勮
]]>
JavaFX BindingTest3http://www.shnenglu.com/aaxron/archive/2020/01/01/217053.html澶╀笅澶╀笅Wed, 01 Jan 2020 05:47:00 GMThttp://www.shnenglu.com/aaxron/archive/2020/01/01/217053.htmlhttp://www.shnenglu.com/aaxron/comments/217053.htmlhttp://www.shnenglu.com/aaxron/archive/2020/01/01/217053.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217053.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217053.htmlpackage application.chapter2;

import javafx.beans.binding.NumberBinding;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ObservableValue;

public class BindingTest3 {

    public static void main(String[] args) {
        IntegerProperty x = new SimpleIntegerProperty(100);
        IntegerProperty y = new SimpleIntegerProperty(200);
        // Create a binding: sum = x + y
        NumberBinding sum = x.add(y);
        System.out.println("After creating sum");
        System.out.println("sum.isValid(): " + sum.isValid());
        // Let us get the value of sum, so it computes its value and
        
// becomes valid
        int value = sum.intValue();
        System.out.println("\nAfter requesting value");
        System.out.println("sum.isValid(): " + sum.isValid());
        System.out.println("sum = " + value);
        // Change the value of x
        x.set(250);
        System.out.println("\nAfter changing x");
        System.out.println("sum.isValid(): " + sum.isValid());
        // Get the value of sum again
        value = sum.intValue();
        System.out.println("\nAfter requesting value");
        System.out.println("sum.isValid(): " + sum.isValid());
        System.out.println("sum = " + value);
    }
}

澶╀笅 2020-01-01 13:47 鍙戣〃璇勮
]]>
JavaFX PropertyTest2 http://www.shnenglu.com/aaxron/archive/2020/01/01/217052.html澶╀笅澶╀笅Wed, 01 Jan 2020 05:19:00 GMThttp://www.shnenglu.com/aaxron/archive/2020/01/01/217052.htmlhttp://www.shnenglu.com/aaxron/comments/217052.htmlhttp://www.shnenglu.com/aaxron/archive/2020/01/01/217052.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217052.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217052.htmlpackage application.chapter2;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ObservableValue;

public class PropertyTest2 {

    public static void main(String[] args) {
        IntegerProperty counter = new SimpleIntegerProperty(100);
        // Add an invalidation listener to the counter property
        counter.addListener(PropertyTest2::changed);
        System.out.println("Before changing the counter value-1");
        counter.set(101);
        System.out.println("After changing the counter value-1");
        /*
         * At this point counter property is invalid and further changes to its value
         * will not generate invalidation events.
         
*/
        System.out.println("\nBefore changing the counter value-2");
        counter.set(102);
        System.out.println("After changing the counter value-2");
        // Make the counter property valid by calling its get() method
        int value = counter.get();
        System.out.println("Counter value = " + value);
        /*
         * At this point counter property is valid and further changes to its value will
         * generate invalidation events.
         
*/
        // Try to set the same value
        System.out.println("\nBefore changing the counter value-3");
        counter.set(102);
        System.out.println("After changing the counter value-3");
        // Try to set a different value
        System.out.println("\nBefore changing the counter value-4");
        counter.set(103);
        System.out.println("After changing the counter value-4");
    }

    public static void changed(ObservableValue<? extends Number> prop,Number oldValue,Number newValue) {
        System.out.print("Counter changed: ");
        System.out.println("Old = " + oldValue + ", new = " + newValue);
    }
}

澶╀笅 2020-01-01 13:19 鍙戣〃璇勮
]]>
2銆丳ass a string to/from Java to/from CTag(s): JNIhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.html澶╀笅澶╀笅Fri, 06 Dec 2019 02:53:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.htmlhttp://www.shnenglu.com/aaxron/comments/217014.htmlhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217014.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217014.htmlPass a string to/from Java to/from CTag(s): JNI
To Java from C (as seen from the previous How-to) :
#include "JavaHowTo.h" 

JNIEXPORT jstring JNICALL Java_JavaHowTo_sayHello
  (JNIEnv *env, jobject obj) {
    return  env->NewStringUTF("Hello world");
}
From Java to C : Suppose we have a Java Class
public class MyClass {
  public String sayHello(){
     return  "Hello world From Java";
  }
}
then from C, we want to call the Java sayHello() method which returns a String :
JNIEXPORT void JNICALL Java_JavaHowTo_sayHello(JNIEnv *env, jobject obj) 
{
    const char *str;
  
    jclass myclass_class =(jclass) env->NewGlobalRef 
         (env->FindClass ("MyClass"));
        
    // we need the MyClass constructor    
    jmethodID constructorID = env->GetMethodID
         (myclass_class, "", "()V");
         
    // and the sayHello() method
    jmethodID methodID = env->GetMethodID
         (myclass_class, "sayHello", "()Ljava/lang/String;");

    // instanciate a MyClass object
    jobject myclass_object =  env->NewObject
         (myclass_class, constructorID);
    
    // call the sayHello() method
    jstring s = (jstring)  env->CallObjectMethod
         (myclass_object, methodID);
    
    // convert the Java String to use it in C
    str = env->GetStringUTFChars(s, 0);
    printf("%s" , str);
    env->ReleaseStringUTFChars(s, str);  
}

The Java JNI wrapper would be
class JavaHowTo {
  public native void sayHello();
  static {
    System.loadLibrary("javahowto"); 
  }
}
And finally, to use it
public class JNIJavaHowTo {
  public static void main(String[] args) {
    JavaHowTo jht = new JavaHowTo();
    jht.sayHello();
    }
}









澶╀笅 2019-12-06 10:53 鍙戣〃璇勮
]]>
1銆乁se native code through JNI (HelloWorld)http://www.shnenglu.com/aaxron/archive/2019/12/06/217013.html澶╀笅澶╀笅Fri, 06 Dec 2019 02:50:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/12/06/217013.htmlhttp://www.shnenglu.com/aaxron/comments/217013.htmlhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217013.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217013.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217013.htmlhttps://www.rgagnon.com/topics/java-jni.html

 

Use native code through JNI (HelloWorld)

Use native code through JNITag(s): JNI

With MSVC6, create a new Win32 DLL project (simple) and call it javahowto.

In the same directory create a java source called JavaHowTo.java 
class JavaHowTo {
  public native String sayHello();
  static {
    System.loadLibrary("javahowto"); 
  }
}
Compile the Java program and use javah utility to generate the JavaHowTo.h header file.
javah -jni JavaHowTo
In MSVC6, add the JavaHowTo.h in your project header files
In the Tools - Options menu, set the include directories to include the Java JNI headers files. They are located in [jdk dir]\include and [jdk dir]\include\win32 directories
In the javahowto.cpp source, add
#include "JavaHowTo.h" 

JNIEXPORT jstring JNICALL Java_JavaHowTo_sayHello
  (JNIEnv *env, jobject obj) {
    return  env->NewStringUTF("Hello world");
}
Select the Release configuration and build the project.
Copy the javahowto.dll in the same directory as the java program.
Create this new java program
public class JNIJavaHowTo {
  public static void main(String[] args) {
    JavaHowTo jht = new JavaHowTo();
    System.out.println(jht.sayHello());
    }
}
Compile and execute.







澶╀笅 2019-12-06 10:50 鍙戣〃璇勮
]]>
Oracle鍒嗛〉http://www.shnenglu.com/aaxron/archive/2019/08/15/216694.html澶╀笅澶╀笅Thu, 15 Aug 2019 08:32:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/08/15/216694.htmlhttp://www.shnenglu.com/aaxron/comments/216694.htmlhttp://www.shnenglu.com/aaxron/archive/2019/08/15/216694.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/216694.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/216694.html
Oracle鍒嗛〉

鏌ヨ璇彞:
select * FROM A_WECHAT WHERE 1=1

鏌ヨ璁板綍鎬繪暟:
SELECT nvl(count(*),0as totalNum 
FROM (
    select * FROM A_WECHAT WHERE 1=1
where 1=1


鍒嗛〉:

 SELECT 
    * 
FROM 
    ( 
        SELECT 
            TIN.*, ROWNUM AS rowno 
        FROM 
            ( 
          select * FROM A_WECHAT WHERE 1=1 order by OPENID desc
            ) TIN 
        WHERE 
            ROWNUM <= 50     ) TOUT 
WHERE 
    TOUT.rowno >= 1 


澶╀笅 2019-08-15 16:32 鍙戣〃璇勮
]]>
c#鏉′歡緙栬瘧http://www.shnenglu.com/aaxron/archive/2019/06/26/216462.html澶╀笅澶╀笅Wed, 26 Jun 2019 10:03:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/06/26/216462.htmlhttp://www.shnenglu.com/aaxron/comments/216462.htmlhttp://www.shnenglu.com/aaxron/archive/2019/06/26/216462.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/216462.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/216462.html Conditional compilation symbols
緙栬瘧鍣ㄥ懡浠よ閫夐」錛堜緥濡傦紝/define:DEBUG錛?
    鍙互鍦╒S2008鐨処DE榪涜璁劇疆, Project Property--->Build--->Conditional compilation symbols(濡傛灉澶氫釜縐戠爺浣跨敤閫楀彿闅斿紑)
    緋葷粺榛樿璁劇疆浜?DEBUG 鍜?TRACE
鎿嶄綔緋葷粺澶栧3紼嬪簭涓殑鐜鍙橀噺錛堜緥濡傦紝set DEBUG=1錛夈?/div>
婧愪唬鐮佷腑鐨勬潅娉紙渚嬪錛岀敤浜庡畾涔夌紪璇戝彉閲忕殑 #define DEBUG錛屼互鍙?qiáng)鐢ㄤ簬鍙栨秷瀹氫箟瀹冪?#undef DEBUG錛夈?/div>
     蹇呴』鍦╢ile鐨勬渶鍓嶆柟璁劇疆,#define debug鎴栬呯粍鍚堟搷浣?/div>
    #if (Debug && Trace)
        #define DebugAndTrace 
    #endif
ps:Conditional浣嶄簬using System.Diagnostics;
浠涔堟儏鍐典笅浣跨敤璇ユ爣璇嗙?
褰撶▼搴忎腑涓涓柟娉曟垨灞炴т笉鎯沖啀浣跨敤鏃?濡傛灉鎶婂畠鍒犳帀灝遍渶瑕佹妸寮曠敤鐨勫湴鏂逛竴涓竴涓叏閮ㄥ垹鎺変笉鐒跺氨浼?xì)缂栬瘧閿欒?榪欐椂鎴戜滑灝卞彲浠ュ湪濉旂殑涓婇潰鍔犱竴涓猍Conditional("string")] 鐒跺悗紼嬪簭榪愯鏃跺氨浼?xì)蹇界暐瀹?/div>
ps:[Conditional("string")]閲岄潰瀛楃涓查殢鎰忓彇  
濡傛灉鎯沖啀嬈¤皟鐢ㄩ偅涓柟娉曟垨灞炴ф庝箞鍔?
榪欎釜寰堢畝鍗?浣犲彧闇鍦ㄥ紩鐢ㄥ懡鍚嶇┖闂撮偅涓湴鏂硅繘琛屼竴涓畯瀹氫箟鎶婁綘鍦╗Conditional("string")]閲岄潰鐨勫瓧絎︿覆瀹氫箟鍑烘潵灝辮兘鐢ㄤ簡(jiǎn)
C#-#define鏉′歡緙栬瘧
C#鐨勯澶勭悊鍣ㄦ寚浠や粠鏉ヤ笉浼?xì)铦{鍖栦負(fù)鍙墽琛屼唬鐮佺殑鍛戒護(hù)錛屼絾鏄細(xì)褰卞搷緙栬瘧榪囩▼鐨勫悇涓柟闈紝甯哥敤鐨勯澶勭悊鍣ㄦ寚浠ゆ湁#define銆?undef銆?if,#elif,#else鍜?endif絳夌瓑錛屼笅闈粙緇岰#涓嬌鐢?define榪涜鏉′歡緙栬瘧鐨勫疄渚嬨?/div>
C#涓潯浠剁紪璇戞寚浠ょ敤浜庢寜鏉′歡鍖呭惈鎴栨帓闄ゆ簮鏂囦歡涓殑鏌愪簺閮ㄥ垎銆傚湪Visual Studio涓紝浼?xì)鐪嬪埌琚帓闄ょ殑浠g爜鏄窘C轟負(fù)鐏拌壊銆?/div>
涓銆?define鍙互鐢ㄦ潵鍋氫粈涔?/div>
1銆佸綋璁″垝鍙戝竷涓や釜鐗堟湰鐨勪唬鐮佺殑鏃跺欍傚嵆鍩烘湰鐗堝拰鎷ユ湁鏇村鐗堟湰鐨勪紒涓氱増錛屽氨鍙互鐢ㄥ埌鏉′歡緙栬瘧鎸囦護(hù)錛?/div>
2銆佷緥濡傚悓涓涓枃浠剁粰silverlight銆亀pf銆亀inform絳変嬌鐢紝騫朵笖榪樿冭檻Debug鍜孯elease絳夛紝鏈夊ぇ閮ㄥ垎浠g爜鏄竴鏍風(fēng)殑錛?/div>
3銆佹寚瀹氬嚱鏁板拰灞炴ф槸鍚︾紪璇戝埌鏈緇堜駭鍝佷腑鍘匯?/div>
浜屻?define鐢ㄦ硶
璇硶錛?define 鍚嶇О
娉ㄦ剰錛氳繖閲屽悕縐板彇Debug錛屼綘涔熷彲浠ュ彇鍏朵粬鍚嶇О濡侱ragon
1 #define Debug
璇存槑錛?/div>
1銆丏ebug鍙互鐪嬪仛鏄0鏄庣殑涓涓彉閲忥紝浣嗘鍙橀噺娌℃湁鐪熸鐨勫鹼紝瀛樺湪鏃?if Debug緇撴灉涓簍rue錛屽惁鍒欎負(fù)false錛?/div>
2銆?define鍗曠嫭鐢ㄦ病浠涔堟剰涔夛紝涓鑸槸鍜?if鎴栬匔onditional鐗規(guī)х粨鍚堜嬌鐢紱
3銆?define蹇呴』瀹氫箟鍦ㄦ墍鏈塽sing鍛藉悕絀洪棿鍓嶉潰錛?/div>
4銆丏ebug涓嶥EBUG鏄笉鍚岀殑錛孋#鍖哄垎澶у皬鍐?/div>
 


澶╀笅 2019-06-26 18:03 鍙戣〃璇勮
]]>spring 瀹樻柟涓嬭澆鍦板潃錛圫pring Framework 3.2.x&Spring Framework 4.0.x錛?/title><link>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Tue, 12 Feb 2019 03:44:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/216238.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/216238.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/216238.html</trackback:ping><description><![CDATA[<p>spring 瀹樻柟涓嬭澆鍦板潃錛圫pring Framework 3.2.x&Spring Framework 4.0.x錛?br />2017騫?2鏈?4鏃?15:53:59 </p> <p>SPRING瀹樻柟緗戠珯鏀圭増鍚庯紝寤鴻閮芥槸閫氳繃 Maven鍜孏radle涓嬭澆錛屽涓嶄嬌鐢∕aven鍜孏radle寮鍙戦」鐩殑錛屼笅杞藉氨闈炲父楹葷儲(chǔ)錛屼笅緇欏嚭Spring Framework jar瀹樻柟鐩存帴涓嬭澆璺緞:</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/</a></p> <p> </p> <p>spring 4.0.x(Spring Framework 4.0.5)涓嬭澆</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/4.0.5.RELEASE/spring-framework-4.0.5.RELEASE-dist.zip</a></p> <p> </p> <p>spring 3.2.x錛圫pring Framework 3.2.9錛変笅杞斤細(xì)</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/3.2.9.RELEASE/spring-framework-3.2.9.RELEASE-dist.zip</a></p> <p> </p> <p> </p> <p>spring 3.2.x錛圫pring Framework 3.2.4錛変笅杞斤細(xì)</p> <p><a >http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip</a></p> <p><br /> </p> <p>鍙pring security涓嬭澆璺緞錛?/p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/</a></p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/3.2.4.RELEASE/spring-security-3.2.4.RELEASE-dist.zip</a></p><img src ="http://www.shnenglu.com/aaxron/aggbug/216238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2019-02-12 11:44 <a href="http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>spring婧愮爜鍒嗘瀽錛?錛堿nnotationMethodHandlerAdapterhttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.html澶╀笅澶╀笅Wed, 11 Apr 2018 08:40:00 GMThttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.htmlhttp://www.shnenglu.com/aaxron/comments/215585.htmlhttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/215585.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/215585.htmlpublic class AnnotationMethodHandlerAdapter extends WebContentGenerator
        
implements HandlerAdapter, Ordered, BeanFactoryAware {
    
//

    
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
return invokeHandlerMethod(request, response, handler);
    }

    
protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        ServletHandlerMethodResolver methodResolver 
= getMethodResolver(handler);
        Method handlerMethod 
= methodResolver.resolveHandlerMethod(request);
        ServletHandlerMethodInvoker methodInvoker 
= new ServletHandlerMethodInvoker(methodResolver);
        ServletWebRequest webRequest 
= new ServletWebRequest(request, response);
        ExtendedModelMap implicitModel 
= new BindingAwareModelMap();

        Object result 
= methodInvoker.invokeHandlerMethod(handlerMethod, handler, webRequest, implicitModel);
        ModelAndView mav 
=
                methodInvoker.getModelAndView(handlerMethod, handler.getClass(), result, implicitModel, webRequest);
        methodInvoker.updateModelAttributes(handler, (mav 
!= null ? mav.getModel() : null), implicitModel, webRequest);
        
return mav;
    }

    
public ModelAndView getModelAndView(Method handlerMethod, Class<?> handlerType, Object returnValue,
            ExtendedModelMap implicitModel, ServletWebRequest webRequest) 
throws Exception {}
}


鍏朵粬
public final class Method extends Executable {
    
public Object invoke(Object obj, Object args)
    
throws IllegalAccessException, IllegalArgumentException,InvocationTargetException
    {
        
if (!override) {
            
if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {
                Class
<?> caller = Reflection.getCallerClass();
                checkAccess(caller, clazz, obj, modifiers);
            }
        }
        MethodAccessor ma 
= methodAccessor;             // read volatile
        if (ma == null) {
            ma 
= acquireMethodAccessor();
        }
        
return ma.invoke(obj, args);
    }
}
public class ModelMap extends LinkedHashMap<String, Object> {}

public abstract class AbstractView extends WebApplicationObjectSupport implements View, BeanNameAware {
    
/**
     * Prepares the view given the specified model, merging it with static
     * attributes and a RequestContext attribute, if necessary.
     * Delegates to renderMergedOutputModel for the actual rendering.
     * 
@see #renderMergedOutputModel
     
*/
    @Override
    
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
if (logger.isTraceEnabled()) {
            logger.trace(
"Rendering view with name '" + this.beanName + "' with model " + model +
                
" and static attributes " + this.staticAttributes);
        }

        Map
<String, Object> mergedModel = createMergedOutputModel(model, request, response);
        prepareResponse(request, response);
        renderMergedOutputModel(mergedModel, getRequestToExpose(request), response);
    }
}
浠g爜錛?br />

澶╀笅 2018-04-11 16:40 鍙戣〃璇勮
]]> 99国产欧美精品久久久蜜芽| 伊人热人久久中文字幕| 久久久久久综合一区中文字幕| 久久婷婷五月综合色奶水99啪| 日本道色综合久久影院| 国产一级做a爰片久久毛片| 久久www免费人成看片| 国内精品人妻无码久久久影院导航| 午夜视频久久久久一区| 久久中文字幕视频、最近更新 | 久久se精品一区二区影院| 久久国产乱子精品免费女| 久久99精品国产一区二区三区| 欧美伊香蕉久久综合类网站| 国产午夜精品理论片久久影视| 狠狠狠色丁香婷婷综合久久五月| 国产精品天天影视久久综合网| 91秦先生久久久久久久| 国产精品久久久天天影视香蕉 | 久久只有这精品99| 国产亚洲美女精品久久久2020| 精品国产乱码久久久久久郑州公司| 国内精品久久久久影院日本 | 精品国产一区二区三区久久| 青青草国产精品久久久久| 欧美日韩中文字幕久久久不卡| 久久这里的只有是精品23| 久久久久无码精品国产不卡| 国内精品久久久久久麻豆| 影音先锋女人AV鲁色资源网久久| 99久久无码一区人妻a黑| 狠狠人妻久久久久久综合蜜桃| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲国产成人精品91久久久 | 狼狼综合久久久久综合网| 91精品国产91热久久久久福利| 欧美一级久久久久久久大片| 久久久一本精品99久久精品66 | 国产精品99久久久久久www| A级毛片无码久久精品免费| 国产毛片久久久久久国产毛片|