Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
±àд¸ßÐÔÄÜJava´úÂëµÄ×î¼Ñʵ¼ù
 
  2581  次浏览      28
 2019-4-26
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÊ×ÏȽéÉÜÁ˸ºÔزâÊÔ¡¢»ùÓÚAPM¹¤¾ßµÄÓ¦ÓóÌÐòºÍ·þÎñÆ÷¼à¿Ø£¬Ëæºó½éÉÜÁ˱àд¸ßÐÔÄÜJava´úÂëµÄһЩ×î¼Ñʵ¼ù¡£×îºóÑо¿ÁËJVMÌØ¶¨µÄµ÷Óż¼ÇÉ¡¢Êý¾Ý¿â¶ËµÄÓÅ»¯ºÍ¼Ü¹¹·½ÃæµÄµ÷Õû¡£

½éÉÜ

ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒÃǽ«ÌÖÂÛ¼¸¸öÓÐÖúÓÚÌáÉýJavaÓ¦ÓóÌÐòÐÔÄܵķ½·¨¡£ÎÒÃÇÊ×ÏȽ«½éÉÜÈçºÎ¶¨Òå¿É¶ÈÁ¿µÄÐÔÄÜÖ¸±ê£¬È»ºó¿´¿´ÓÐÄÄЩ¹¤¾ß¿ÉÒÔÓÃÀ´¶ÈÁ¿ºÍ¼à¿ØÓ¦ÓóÌÐòÐÔÄÜ£¬ÒÔ¼°È·¶¨ÐÔÄÜÆ¿¾±¡£

ÎÒÃÇ»¹½«¿´µ½Ò»Ð©³£¼ûµÄJava´úÂëÓÅ»¯·½·¨ÒÔ¼°×î¼Ñ±àÂëʵ¼ù¡£×îºó£¬ÎÒÃǽ«¿´¿´ÓÃÓÚÌáÉýJavaÓ¦ÓóÌÐòÐÔÄܵÄJVMµ÷Óż¼Çɺͼܹ¹µ÷Õû¡£

Çë×¢Ò⣬ÐÔÄÜÓÅ»¯ÊÇÒ»¸öºÜ¿í·ºµÄ»°Ì⣬¶ø±¾ÎÄÖ»ÊǶÔJVM̽Ë÷µÄÒ»¸öÆðµã¡£

ÐÔÄÜÖ¸±ê

ÔÚ¿ªÊ¼ÓÅ»¯Ó¦ÓóÌÐòµÄÐÔÄÜ֮ǰ£¬ÎÒÃÇÐèÒªÀí½âÖîÈç¿ÉÀ©Õ¹ÐÔ¡¢ÐÔÄÜ¡¢¿ÉÓÃÐԵȷ½ÃæµÄ·Ç¹¦ÄÜÐèÇó¡£

ÒÔÏÂÊǵäÐÍWebÓ¦ÓóÌÐò³£ÓõÄһЩÐÔÄÜÖ¸±ê£º

1.Ó¦ÓóÌÐòƽ¾ùÏìӦʱ¼ä

2.ϵͳ±ØÐëÖ§³ÖµÄƽ¾ù²¢·¢Óû§Êý

3.ÔÚ¸ºÔظ߷åÆÚ¼ä£¬Ô¤ÆÚµÄÿÃëÇëÇóÊý

ÕâЩָ±ê¿ÉÒÔͨ¹ýʹÓöàÖÖ¼àÊÓ¹¤¾ß¼à²âµ½£¬ËüÃǶԷÖÎöÐÔÄÜÆ¿¾±ºÍÐÔÄܵ÷ÓÅÓÐ×ŷdz£´óµÄ×÷Óá£

ʾÀýÓ¦ÓóÌÐò

ÎÒÃǽ«Ê¹ÓÃÒ»¸ö¼òµ¥µÄSpring Boot WebÓ¦ÓóÌÐò×÷ΪʾÀý£¬ÔÚÕâÆªÎÄÕÂÖÐÓÐÏà¹ØµÄ½éÉÜ¡£Õâ¸öÓ¦ÓóÌÐò¿ÉÓÃÓÚ¹ÜÀíÔ±¹¤ÁÐ±í£¬²¢¶ÔÍ⹫¿ªÁËÌí¼ÓºÍ¼ìË÷Ô±¹¤µÄREST API¡£

ÎÒÃǽ«Ê¹ÓÃÕâ¸ö³ÌÐò×÷Ϊ²Î¿¼À´ÔËÐиºÔزâÊÔ£¬²¢ÔÚ½ÓÏÂÀ´µÄÕ½ÚÖÐ¼à¿Ø¸÷ÖÖÓ¦ÓÃÖ¸±ê¡£

ÕÒ³öÐÔÄÜÆ¿¾±

¸ºÔزâÊÔ¹¤¾ßºÍÓ¦ÓóÌÐòÐÔÄܹÜÀí£¨APM£©½â¾ö·½°¸³£ÓÃÓÚ¸ú×ÙºÍÓÅ»¯JavaÓ¦ÓóÌÐòµÄÐÔÄÜ¡£ÒªÕÒ³öÐÔÄÜÆ¿¾±£¬Ö÷Òª¾ÍÊǶԸ÷ÖÖÓ¦Óó¡¾°½øÐиºÔزâÊÔ£¬²¢Í¬Ê±Ê¹ÓÃAPM¹¤¾ß¶ÔCPU¡¢IO¡¢¶ÑµÄʹÓÃÇé¿ö½øÐÐ¼à¿ØµÈµÈ¡£

GatlingÊǽøÐиºÔزâÊÔ×îºÃµÄ¹¤¾ßÖ®Ò»£¬ËüÌṩÁ˶ÔHTTPЭÒéµÄÖ§³Ö£¬ÊÇHTTP·þÎñÆ÷¸ºÔزâÊԵľø¼ÑÑ¡Ôñ¡£

StackifyµÄRetraceÊÇÒ»¸ö³ÉÊìµÄAPM½â¾ö·½°¸¡£ËüµÄ¹¦Äܷܺḻ£¬¶ÔÈ·¶¨Ó¦ÓóÌÐòµÄÐÔÄÜ»ùÏߺÜÓаïÖú¡£ RetraceµÄ¹Ø¼ü×é¼þÖ®Ò»ÊÇËüµÄ´úÂë·ÖÎö¹¦ÄÜ£¬ËüÄܹ»ÔÚ²»¼õÂýÓ¦ÓóÌÐòµÄÇé¿öÏÂÊÕ¼¯ÔËÐÐʱÐÅÏ¢¡£

Retrace»¹ÌṩÁ˼àÊÓ»ùÓÚJVMÓ¦ÓóÌÐòµÄÄÚ´æ¡¢Ï̺߳ÍÀàµÄС²¿¼þ¡£³ýÁËÓ¦ÓóÌÐò±¾ÉíµÄÖ¸±êÖ®Í⣬Ëü»¹Ö§³Ö¼àÊÓÍйÜÓ¦ÓóÌÐòµÄ·þÎñÆ÷µÄCPUºÍIOʹÓÃÇé¿ö¡£

Òò´Ë£¬ÏñRetraceÕâÑù¹¦ÄÜÈ«ÃæµÄ¼à¿Ø¹¤¾ßÊǽâËøÓ¦ÓóÌÐòÐÔÄÜDZÁ¦µÄµÚÒ»²½¡£¶øµÚ¶þ²½ÔòÊÇÔÚÄãµÄϵͳÉÏÖØÏÖÕæÊµÊ¹Óó¡¾°ºÍ¸ºÔØ¡£

˵ÆðÀ´ÈÝÒ×£¬×öÆðÀ´ÄÑ£¬¶øÇÒÁ˽âÓ¦ÓóÌÐòµ±Ç°µÄÐÔÄÜÒ²·Ç³£ÖØÒª¡£Õâ¾ÍÊÇÎÒÃǽÓÏÂÀ´Òª¹Ø×¢µÄÎÊÌâ¡£

Gatling¸ºÔزâÊÔ

GatlingµÄÄ£Äâ²âÊԽű¾ÊÇÓÃScala±àдµÄ£¬µ«¸Ã¹¤¾ß»¹¸½´øÁËÒ»¸ö·Ç³£ÓÐÓõÄͼÐνçÃæ£¬¿ÉÓÃÓڼǼ¾ßÌåµÄ³¡¾°£¬²¢Éú³ÉScala½Å±¾¡£

ÔÚÔËÐÐÄ£Äâ½Å±¾Ö®ºó£¬Gatling»áÉú³ÉÒ»·Ý·Ç³£ÓÐÓõġ¢¿ÉÓÃÓÚ·ÖÎöµÄHTML±¨¸æ¡£

¶¨Ò峡¾°

ÔÚÆô¶¯¼Ç¼Æ÷֮ǰ£¬ÎÒÃÇÐèÒª¶¨ÒåÒ»¸ö³¡¾°£¬±íʾÓû§ÔÚä¯ÀÀWebÓ¦ÓÃʱ·¢ÉúµÄÊÂÇé¡£

ÔÚÎÒÃǵÄÕâ¸öÀý×ÓÖУ¬¾ßÌåµÄ³¡¾°½«ÊÇ¡°Æô¶¯200¸öÓû§£¬Ã¿¸öÓû§·¢³öÒ»Íò¸öÇëÇ󡣡±

ÅäÖüǼÆ÷

¸ù¾Ý¡°GatlingµÄµÚÒ»²½¡±ËùÊö£¬ÓÃÏÂÃæµÄ´úÂë´´½¨Ò»¸öÃûΪEmployeeSimulationµÄscalaÎļþ£º

class EmployeeSimulation extends Simulation {
val scn = scenario("FetchEmployees").repeat(10000) {
exec(
http("GetEmployees-API")
.get("http://localhost:8080/employees")
.check(status.is(200))
)
}
setUp(scn.users(200).ramp(100))
}

ÔËÐиºÔزâÊÔ

ÒªÖ´ÐиºÔزâÊÔ£¬ÇëÔËÐÐÒÔÏÂÃüÁ

$GATLING_HOME/bin/gatling.sh-sbasic.EmployeeSimulation

¶ÔÓ¦ÓóÌÐòµÄAPI½øÐиºÔزâÊÔÓÐÖúÓÚ·¢ÏÖ¼°Æäϸ΢µÄ²¢ÇÒÄÑÒÔ·¢ÏֵĴíÎó£¬ÈçÊý¾Ý¿âÁ¬½ÓºÄ¾¡¡¢¸ß¸ºÔØÇé¿öϵÄÇëÇó³¬Ê±¡¢ÒòΪÄÚ´æÐ¹Â©¶øµ¼Ö¶ѵĸßʹÓÃÂʵȵȡ£

¼à¿ØÓ¦ÓóÌÐò

ҪʹÓÃRetrace½øÐÐJavaÓ¦ÓóÌÐòµÄ¿ª·¢£¬Ê×ÏÈÐèÒªÔÚStackifyÉÏÉêÇëÃâ·ÑÊÔÓÃÕ˺š£È»ºó£¬½«ÎÒÃÇ×Ô¼ºµÄSpring BootÓ¦ÓóÌÐòÅäÖÃΪLinux·þÎñ¡£ÎÒÃÇ»¹ÐèÒªÔÚÍйÜÓ¦ÓóÌÐòµÄ·þÎñÆ÷Éϰ²×°Retrace´úÀí£¬°´ÕÕÕâÆªÎÄÕÂËùÊöµÄ²Ù×÷¼´¿É¡£

Retrace´úÀíºÍÒª¼à¿ØµÄJavaÓ¦ÓóÌÐòÆô¶¯ºó£¬ÎÒÃǾͿÉÒÔµ½RetraceÒDZí°åÉϵ¥»÷AddApp°´Å¥Ìí¼ÓÓ¦ÓÃÁË¡£Ìí¼ÓÓ¦ÓÃÍê³ÉÖ®ºó£¬Retrace½«¿ªÊ¼¼à¿ØÓ¦ÓóÌÐòÁË¡£

ÕÒµ½×îÂýµÄÄǸöµã

Retrace»á×Ô¶¯¼à¿ØÓ¦ÓóÌÐò£¬²¢¸ú×ÙÊýÊ®ÖÖ³£¼û¿ò¼Ü¼°ÆäÒÀÀµ¹ØÏµµÄʹÓÃÇé¿ö£¬°üÀ¨SQL¡¢MongoDB¡¢Redis¡¢ElasticsearchµÈµÈ¡£RetraceÄܰïÖúÎÒÃÇ¿ìËÙÈ·¶¨Ó¦ÓóÌÐòΪʲô»á³öÏÖÈçÏÂÐÔÄÜÎÊÌ⣺

ij¸öSQLÓï¾äÊÇ·ñ»áÍÏÂýϵͳµÄËÙ¶È£¿

RedisͻȻ±äÂýÁËÂð£¿

ÌØ¶¨µÄHTTP Web·þÎñå´ÁË£¬»¹ÊDZäÂýÁË£¿

ÀýÈ磬ÏÂÃæµÄͼÐÎչʾÁËÔÚÒ»¶Î¸ø¶¨µÄʱ¼äÄÚËÙ¶È×îÂýµÄ×é¼þ¡£

´úÂë¼¶±ðµÄÓÅ»¯

¸ºÔزâÊÔºÍÓ¦ÓóÌÐò¼à¿Ø¶ÔÓÚÈ·¶¨Ó¦ÓóÌÐòµÄһЩ¹Ø¼üÐÔÄÜÆ¿¾±·Ç³£ÓÐÓᣵ«Í¬Ê±£¬ÎÒÃÇÐèÒª×ñÑ­Á¼ºÃµÄ±àÂëϰ¹ß£¬ÒÔ±ÜÃâÔÚ¶ÔÓ¦ÓóÌÐò½øÐÐ¼à¿ØµÄʱºò³öÏÖ¹ý¶àµÄÐÔÄÜÎÊÌâ¡£

ÔÚÏÂÒ»Õ½ÚÖУ¬ÎÒÃǽ«À´¿´Ò»Ð©×î¼Ñʵ¼ù¡£

ʹÓÃStringBuilderÀ´Á¬½Ó×Ö·û´®

×Ö·û´®Á¬½ÓÊÇÒ»¸ö·Ç³£³£¼ûµÄ²Ù×÷£¬Ò²ÊÇÒ»¸öµÍЧÂʵIJÙ×÷¡£¼òµ¥µØËµ£¬Ê¹ÓÃ+=À´×·¼Ó×Ö·û´®µÄÎÊÌâÔÚÓÚÿ´Î²Ù×÷¶¼»á·ÖÅäеÄString¡£

ÏÂÃæÕâ¸öÀý×ÓÊÇÒ»¸ö¼ò»¯Á˵ĵ«È´ºÜµäÐ͵ÄÑ­»·¡£Ç°ÃæÊ¹ÓÃÁËԭʼµÄÁ¬½Ó·½Ê½£¬ºóÃæÊ¹ÓÃÁ˹¹½¨Æ÷£º

public String stringAppendLoop() {
String s = "";
for (int i = 0; i < 10000; i++) {
if (s.length() > 0)
s += ", ";
s += "bar";
}
return s;
}

public String stringAppendBuilderLoop() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
if (sb.length() > 0)
sb.append(", ");
sb.append("bar");
}
return sb.toString();
}

ÉÏÃæ´úÂëÖÐʹÓõÄStringBuilder¶ÔÐÔÄܵÄÌáÉý·Ç³£ÓÐЧ¡£Çë×¢Ò⣬ÏÖ´úµÄJVM»áÔÚ±àÒë»òÕßÔËÐÐʱ¶Ô×Ö·û´®²Ù×÷½øÐÐÓÅ»¯¡£

±ÜÃâµÝ¹é

µ¼Ö³öÏÖStackOverFlowError´íÎóµÄµÝ¹é´úÂëÂß¼­ÊÇJavaÓ¦ÓóÌÐòÖÐÁíÒ»ÖÖ³£¼ûµÄÎÊÌâ¡£Èç¹ûÎÞ·¨È¥µôµÝ¹éÂß¼­£¬ÄÇôβµÝ¹é×÷ÎªÌæ´ú·½°¸½«»á¸üºÃ¡£

ÎÒÃÇÀ´¿´Ò»¸öÍ·µÝ¹éµÄÀý×Ó£º

public int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}

ÏÖÔÚÎÒÃǰÑËüÖØÐ´ÎªÎ²µÝ¹é£º

private int factorial(int n, int accum) {
if (n == 0) {
return accum;
} else {
return factorial(n - 1, accum * n);
}
}
public int factorial(int n) {
return factorial(n, 1);
}

ÆäËûJVMÓïÑÔ£¨ÈçScala£©ÒѾ­ÔÚ±àÒëÆ÷¼¶Ö§³ÖβµÝ¹é´úÂëµÄÓÅ»¯£¬µ±È»£¬¶ÔÓÚÕâÖÖÓÅ»¯Ä¿Ç°Ò²´æÔÚ×ÅһЩÕùÒé¡£

½÷É÷ʹÓÃÕýÔò±í´ïʽ

ÕýÔò±í´ïʽÔںܶೡ¾°Öж¼·Ç³£ÓÐÓ㬵«ËüÃÇÍùÍù¾ßÓзdz£¸ßµÄÐÔÄܳɱ¾¡£Á˽â¸÷ÖÖʹÓÃÕýÔò±í´ïʽµÄJDK×Ö·û´®·½·¨ºÜÖØÒª£¬ÀýÈçString.replaceAll()¡¢String.split()¡£

Èç¹ûÄã²»µÃ²»ÔÚ¼ÆËãÃܼ¯µÄ´úÂë¶ÎÖÐʹÓÃÕýÔò±í´ïʽ£¬ÄÇôÐèÒª»º´æPatternµÄÒýÓöø±ÜÃâÖØ¸´±àÒ룺

static final Pattern HEAVY_REGEX = Pattern.compile("(((X)*Y)*Z)*");

ʹÓÃһЩÁ÷ÐеĿ⣬±ÈÈçApache Commons LangÒ²ÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ£¬ÌرðÊÇÔÚ×Ö·û´®µÄ²Ù×÷·½Ãæ¡£

±ÜÃâ´´½¨ºÍÏú»Ù¹ý¶àµÄÏß³Ì

Ï̵߳Ĵ´½¨ºÍ´¦ÖÃÊÇJVM³öÏÖÐÔÄÜÎÊÌâµÄ³£¼ûÔ­Òò£¬ÒòΪÏ̶߳ÔÏóµÄ´´½¨ºÍÏú»ÙÏà¶Ô½ÏÖØ¡£

Èç¹ûÓ¦ÓóÌÐòʹÓÃÁË´óÁ¿µÄỊ̈߳¬ÄÇôʹÓÃÏ̳߳ػá¸ü¼ÓÓÐÓã¬ÒòΪÏ̳߳ØÔÊÐíÕâЩ°º¹óµÄ¶ÔÏó±»ÖØÓá£

Ϊ´Ë£¬JavaµÄExecutorServiceÊÇÏ̳߳صĻù´¡£¬ËüÌṩÁËÒ»¸ö¸ß¼¶APIÀ´¶¨ÒåÏ̳߳صÄÓïÒå²¢ÓëÖ®½øÐн»»¥¡£

Java 7ÖеÄFork/Join¿ò¼ÜÒ²ÖµµÃÌáһϣ¬ÒòΪËüÌṩÁËһЩ¹¤¾ßÀ´³¢ÊÔʹÓÃËùÓпÉÓõĴ¦ÀíÆ÷ºËÐÄÒÔ°ïÖú¼ÓËÙ²¢Ðд¦Àí¡£ÎªÁËÌá¸ß²¢ÐÐÖ´ÐÐЧÂÊ£¬¿ò¼ÜʹÓÃÁËÒ»¸öÃûΪForkJoinPoolµÄÏ̳߳ØÀ´¹ÜÀí¹¤×÷Ï̡߳£

JVMµ÷ÓÅ

¶Ñ´óСµÄµ÷ÓÅ

ΪÉú²úϵͳȷ¶¨ºÏÊʵÄJVM¶Ñ´óС²¢²»ÊÇÒ»¼þ¼òµ¥µÄÊÂÇé¡£Òª×öµÄµÚÒ»²½ÊǻشðÒÔÏÂÎÊÌâÒÔÔ¤²âÄÚ´æÐèÇó£º

¼Æ»®Òª°Ñ¶àÉÙ¸ö²»Í¬µÄÓ¦ÓóÌÐò²¿Êðµ½µ¥¸öJVM½ø³ÌÖУ¬ÀýÈçEARÎļþ¡¢WARÎļþ¡¢jarÎļþµÄÊýÁ¿ÊǶàÉÙ£¿

ÔÚÔËÐÐʱ¿ÉÄÜ»á¼ÓÔØ¶àÉÙ¸öJavaÀ࣬°üÀ¨µÚÈý·½APIµÄÀࣿ

¹À¼ÆÄڴ滺´æËùÐèµÄ¿Õ¼ä£¬ÀýÈ磬ÓÉÓ¦ÓóÌÐò£¨ºÍµÚÈý·½API£©¼ÓÔØµÄÄÚ²¿»º´æÊý¾Ý½á¹¹£¬±ÈÈç´ÓÊý¾Ý¿â»º´æµÄÊý¾Ý¡¢´ÓÎļþÖжÁÈ¡µÄÊý¾ÝµÈµÈ¡£

¹À¼ÆÓ¦ÓóÌÐò½«´´½¨µÄÏß³ÌÊý¡£

Èç¹ûûÓо­¹ýÕæÊµ³¡¾°µÄ²âÊÔ£¬ÕâЩÊý×ÖºÜÄѹÀ¼Æ¡£

Òª»ñµÃÓйØÓ¦ÓóÌÐòÐèÇóµÄ×îºÃ×î¿É¿¿µÄ·½·¨ÊǶÔÓ¦ÓóÌÐòÖ´ÐÐʵ¼ÊµÄ¸ºÔزâÊÔ£¬²¢ÔÚÔËÐÐʱ¸ú×ÙÐÔÄÜÖ¸±ê¡£ÎÒÃÇ֮ǰÌÖÂ۵ĻùÓÚGatlingµÄ²âÊÔ¾ÍÊÇÒ»¸öºÜºÃµÄ·½·¨¡£

Ñ¡ÔñºÏÊʵÄÀ¬»øÊÕ¼¯Æ÷

Stop-the-world£¨STW£©À¬»øÊÕ¼¯µÄÖÜÆÚÊÇÓ°Ïì´ó¶àÊýÃæÏò¿Í»§¶ËÓ¦ÓóÌÐòÏìÓ¦ºÍÕûÌåJavaÐÔÄܵĴóÎÊÌâ¡£µ«ÊÇ£¬Ä¿Ç°µÄÀ¬»øÊÕ¼¯Æ÷´ó¶à½â¾öÁËÕâ¸öÎÊÌ⣬²¢ÇÒͨ¹ýÊʵ±µÄÓÅ»¯ºÍ´óСµÄµ÷Õû£¬Äܹ»Ïû³ý¶ÔÊÕ¼¯ÖÜÆÚµÄ¸ÐÖª¡£

·ÖÎöÆ÷¡¢¶Ñת´¢ºÍÏêϸµÄGCÈÕÖ¾¼Ç¼¹¤¾ß¶Ô´ËÓÐÒ»¶¨µÄ°ïÖú×÷Óá£ÔÙÒ»´Î×¢Ò⣬ÕâЩ¶¼ÐèÒªÔÚÕæÊµ³¡¾°µÄ¸ºÔØÄ£Ê½Ï½øÐÐ¼à¿Ø¡£

Óйز»Í¬À¬»øÊÕ¼¯Æ÷µÄ¸ü¶àÐÅÏ¢£¬Çë²é¿´Õâ¸öÖ¸ÄÏ¡£

JDBCÐÔÄÜ

¹ØÏµÐÍÊý¾Ý¿âÊÇJavaÓ¦ÓóÌÐòÖÐÁíÒ»¸ö³£¼ûµÄÐÔÄÜÎÊÌ⡣ΪÁË»ñµÃÍêÕûÇëÇóµÄÏìӦʱ¼ä£¬ÎÒÃǺÜ×ÔÈ»µØ±ØÐë²é¿´Ó¦ÓóÌÐòµÄÿһ²ã£¬²¢Ë¼¿¼ÈçºÎÈôúÂëÓëµ×²ãSQL DB½øÐн»»¥¡£

Á¬½Ó³Ø

ÈÃÎÒÃÇ´ÓÖÚËùÖÜÖªµÄÊÂʵ¿ªÊ¼£¬¼´Êý¾Ý¿âÁ¬½ÓÊǰº¹óµÄ¡£ Á¬½Ó³Ø»úÖÆÊǽâ¾öÕâ¸öÎÊÌâ·Ç³£ÖØÒªµÄµÚÒ»²½¡£

ÕâÀィÒéʹÓÃHikariCP JDBC£¬ÕâÊÇÒ»¸ö·Ç³£ÇáÁ¿¼¶£¨´óÔ¼130Kb£©²¢ÇÒËٶȼ«¿ìµÄJDBCÁ¬½Ó³Ø¿ò¼Ü¡£

JDBCÅú´¦Àí

³Ö¾Ã»¯´¦ÀíÓ¦¾¡¿ÉÄܵØÖ´ÐÐÅúÁ¿²Ù×÷¡£ JDBCÅú´¦ÀíÔÊÐíÎÒÃÇÔÚµ¥´ÎÊý¾Ý¿â½»»¥Öз¢ËͶà¸öSQLÓï¾ä¡£

ÕâÑù£¬ÎÞÂÛÊÇÔÚÇý¶¯¶Ë»¹ÊÇÔÚÊý¾Ý¿â¶Ë£¬ÐÔÄܶ¼¿ÉÄܵõ½ÏÔÖøµØÌáÉý¡£ * PreparedStatement*ÊÇÒ»¸ö·Ç³£°ôµÄµÄÅú´¦ÀíÃüÁһЩÊý¾Ý¿âϵͳ£¨ÀýÈçOracle£©Ö»Ö§³ÖÔ¤´¦ÀíÓï¾äµÄÅú´¦Àí¡£

ÁíÒ»·½Ã棬HibernateÔò¸ü¼ÓÁé»î£¬ËüÔÊÐíÎÒÃÇÖ»ÐèÐÞ¸ÄÒ»¸öÅäÖü´¿É¿ìËÙÇл»ÎªÅú´¦Àí²Ù×÷¡£

Óï¾ä»º´æ

Óï¾ä»º´æÊÇÁíÒ»ÖÖÌá¸ß³Ö¾Ã²ãÐÔÄܵķ½·¨£¬ÕâÊÇÒ»ÖÖÏÊΪÈËÖªµ«ÓÖÈÝÒ×ÕÆÎÕµÄÐÔÄÜÓÅ»¯·½·¨¡£

Ö»Òªµ×²ãµÄJDBCÇý¶¯³ÌÐòÖ§³Ö£¬Äã¾Í¿ÉÒÔÔÚ¿Í»§¶Ë£¨Çý¶¯³ÌÐò£©»òÊý¾Ý¿â¶Ë£¨Óï·¨Ê÷ÉõÖÁÖ´Ðмƻ®£©Öлº´æPreparedStatement¡£

¹æÄ£µÄËõ·Å

Êý¾Ý¿â¸´ÖÆºÍ·ÖÆ¬ÊÇÌá¸ßÍÌÍÂÁ¿·Ç³£ºÃµÄ·½·¨£¬ÎÒÃÇÓ¦¸Ã³ä·ÖÀûÓÃÕâЩ¾­¹ýʵ¼ù¼ìÑéµÄ¼Ü¹¹Ä£Ê½£¬ÒÔÀ©Õ¹ÆóÒµÓ¦Óõij־ò㡣

¼Ü¹¹¸Ä½ø

»º´æ

ÏÖÔÚÄÚ´æµÄ¼Û¸ñºÜµÍ£¬¶øÇÒÔ½À´Ô½µÍ£¬´Ó´ÅÅÌ»òͨ¹ýÍøÂçÀ´¼ìË÷Êý¾ÝµÄÐÔÄÜ´ú¼ÛÈÔÈ»ºÜ¸ß¡£»º´æ×ÔÈ»¶øÈ»µÄ±ä³ÉÁËÔÚÓ¦ÓóÌÐòÐÔÄÜ·½Ãæ²»ÄܺöÊӵĹؼü¡£

µ±È»£¬ÔÚÓ¦ÓõÄÍØÆË½á¹¹ÖÐÒýÈëÒ»¸ö¶ÀÁ¢µÄ»º´æÏµÍ³È·Êµ»áÔö¼Ó¼Ü¹¹µÄ¸´ÔÓ¶È£¬ËùÒÔ£¬Ó¦µ±³ä·ÖÀûÓõ±Ç°Ê¹ÓõĿâºÍ¿ò¼ÜÏÖÓеĻº´æ¹¦ÄÜ¡£

ÀýÈ磬´ó¶àÊýµÄ³Ö¾Ã»¯¿ò¼Ü¶¼Ö§³Ö»º´æ¡£ Spring MVCµÈWeb¿ò¼Ü»¹¿ÉÒÔʹÓÃSpringÖÐÄÚÖõĻº´æÖ§³Ö£¬ÒÔ¼°»ùÓÚETagsµÄÇ¿´óµÄHTTP¼¶»º´æ¡£

ºáÏòÀ©Õ¹

ÎÞÂÛÎÒÃÇÔÚµ¥¸öʵÀýÖÐ×¼±¸Á˶àÉÙÓ²¼þ£¬¶¼»áÓв»¹»ÓõÄʱºò¡£¼ò¶øÑÔÖ®£¬À©Õ¹ÓÐ×ÅÌìÉúµÄ¾ÖÏÞÐÔ£¬µ±ÏµÍ³Óöµ½ÕâЩÎÊÌâʱ£¬ºáÏòÀ©Õ¹ÊÇ´¦Àí¸ü¶à¸ºÔصÄΨһ;¾¶¡£ÕâÒ»²½¿Ï¶¨»áÏ൱µÄ¸´ÔÓ£¬µ«È´ÊÇÀ©Õ¹Ó¦ÓõÄΨһ°ì·¨¡£

¶Ô´ó¶àÊýµÄÏÖ´ú¿ò¼ÜºÍ¿âÀ´Ëµ£¬Õâ·½Ãæ»¹ÊÇÖ§³ÖµÃºÜºÃµÄ£¬¶øÇÒ»á±äµÃÔ½À´Ô½ºÃ¡£ SpringÉú̬ϵͳÓÐÒ»¸öÍêÕûµÄÏîÄ¿¼¯£¬×¨ÃÅÓÃÓÚ½â¾öÕâ¸öÌØ¶¨µÄÓ¦ÓóÌÐò¼Ü¹¹ÁìÓò£¬ÆäËû´ó¶àÊýµÄ¿ò¼ÜÒ²¶¼ÓÐÀàËÆµÄÖ§³Ö¡£

³ýÁËÄܹ»ÌáÉýJavaµÄÐÔÄÜ£¬Í¨¹ý¼¯Èº½øÐкáÏòÀ©Õ¹Ò²ÓÐÆäËûµÄºÃ´¦£¬Ìí¼ÓеĽڵãÄܲúÉúÈßÓ࣬²¢¸üºÃµÄ´¦Àí¹ÊÕÏ£¬´Ó¶øÌá¸ßÕû¸öϵͳµÄ¿ÉÓÃÐÔ¡£

½áÂÛ

ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒÃÇÎ§ÈÆ×ÅÌáÉýJavaÓ¦ÓõÄÐÔÄÜ̽ÌÖÁËÐí¶à¸ÅÄî¡£ÎÒÃÇÊ×ÏȽéÉÜÁ˸ºÔزâÊÔ¡¢»ùÓÚAPM¹¤¾ßµÄÓ¦ÓóÌÐòºÍ·þÎñÆ÷¼à¿Ø£¬Ëæºó½éÉÜÁ˱àд¸ßÐÔÄÜJava´úÂëµÄһЩ×î¼Ñʵ¼ù¡£×îºó£¬ÎÒÃÇÑо¿ÁËJVMÌØ¶¨µÄµ÷Óż¼ÇÉ¡¢Êý¾Ý¿â¶ËµÄÓÅ»¯ºÍ¼Ü¹¹·½ÃæµÄµ÷Õû¡£

 

   
2581 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö