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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SSM¿ò¼ÜÔ­Àí,×÷Óü°Ê¹Ó÷½·¨
 
  3756  次浏览      28
 2019-4-24
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª½éÉÜÁËSSM¿ò¼ÜµÄ×÷Óã¬Ô­Àí£¬ÒÔ¼°SSM¿ò¼ÜµÄÕûºÏµÄÏà¹ØÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒÄÜÓÐËù°ïÖú¡£

×÷Óãº

SSM¿ò¼ÜÊÇspring MVC £¬springºÍmybatis¿ò¼ÜµÄÕûºÏ£¬ÊDZê×¼µÄMVCģʽ£¬½«Õû¸öϵͳ»®·ÖΪ±íÏֲ㣬controller²ã£¬service²ã£¬DAO²ãËIJã

ʹÓÃspring MVC¸ºÔðÇëÇóµÄת·¢ºÍÊÓͼ¹ÜÀí

springʵÏÖÒµÎñ¶ÔÏó¹ÜÀí£¬mybatis×÷ΪÊý¾Ý¶ÔÏóµÄ³Ö¾Ã»¯ÒýÇæ

Ô­Àí£º

SpringMVC£º

1.¿Í»§¶Ë·¢ËÍÇëÇóµ½DispacherServlet£¨·Ö·¢Æ÷£©

2.ÓÉDispacherServlet¿ØÖÆÆ÷²éѯHanderMapping£¬ÕÒµ½´¦ÀíÇëÇóµÄController

3.Controllerµ÷ÓÃÒµÎñÂß¼­´¦Àíºó£¬·µ»ØModelAndView

4.DispacherSerclet²éѯÊÓͼ½âÎöÆ÷£¬ÕÒµ½ModelAndViewÖ¸¶¨µÄÊÓͼ

5.ÊÓͼ¸ºÔ𽫽á¹ûÏÔʾµ½¿Í»§¶Ë

Spring£ºÎÒÃÇÆ½Ê±¿ª·¢½Ó´¥×î¶àµÄ¹À¼Æ¾ÍÊÇIOCÈÝÆ÷£¬Ëü¿ÉÒÔ×°ÔØbean£¨Ò²¾ÍÊÇÎÒÃÇJavaÖеÄÀ࣬µ±È»Ò²°üÀ¨service daoÀïÃæµÄ£©£¬ÓÐÁËÕâ¸ö»úÖÆ£¬ÎÒÃǾͲ»ÓÃÔÚÿ´ÎʹÓÃÕâ¸öÀàµÄʱºòΪËü³õʼ»¯£¬ºÜÉÙ¿´µ½¹Ø¼ü×Önew¡£ÁíÍâspringµÄaop£¬ÊÂÎñ¹ÜÀíµÈµÈ¶¼ÊÇÎÒÃǾ­³£Óõ½µÄ¡£

Mybatis£ºmybatisÊǶÔjdbcµÄ·â×°£¬ËüÈÃÊý¾Ý¿âµ×²ã²Ù×÷±äµÄ͸Ã÷¡£mybatisµÄ²Ù×÷¶¼ÊÇÎ§ÈÆÒ»¸ösqlSessionFactoryʵÀýÕ¹¿ªµÄ¡£mybatisͨ¹ýÅäÖÃÎļþ¹ØÁªµ½¸÷ʵÌåÀàµÄMapperÎļþ£¬MapperÎļþÖÐÅäÖÃÁËÿ¸öÀà¶ÔÊý¾Ý¿âËùÐè½øÐеÄsqlÓï¾äÓ³Éä¡£ÔÚÿ´ÎÓëÊý¾Ý¿â½»»¥Ê±£¬Í¨¹ýsqlSessionFactoryÄõ½Ò»¸ösqlSession£¬ÔÙÖ´ÐÐsqlÃüÁî¡£

ʹÓ÷½·¨£º

ÒªÍê³ÉÒ»¸ö¹¦ÄÜ£º

ÏÈдʵÌåÀàentity£¬¶¨Òå¶ÔÏóµÄÊôÐÔ£¬£¨¿ÉÒÔ²ÎÕÕÊý¾Ý¿âÖбíµÄ×Ö¶ÎÀ´ÉèÖã¬Êý¾Ý¿âµÄÉè¼ÆÓ¦¸ÃÔÚËùÓбàÂ뿪ʼ֮ǰ£©¡£

дMapper.xml£¨Mybatis£©£¬ÆäÖж¨ÒåÄãµÄ¹¦ÄÜ£¬¶ÔÓ¦Òª¶ÔÊý¾Ý¿â½øÐеÄÄÇЩ²Ù×÷£¬±ÈÈç insert¡¢selectAll¡¢selectByKey¡¢delete¡¢updateµÈ¡£

дMapper.java£¬½«Mapper.xmlÖеIJÙ×÷°´ÕÕidÓ³Éä³ÉJavaº¯Êý¡£

дService.java£¬Îª¿ØÖƲãÌṩ·þÎñ£¬½ÓÊÜ¿ØÖƲãµÄ²ÎÊý£¬Íê³ÉÏàÓ¦µÄ¹¦ÄÜ£¬²¢·µ»Ø¸ø¿ØÖƲ㡣

дController.java£¬Á¬½ÓÒ³ÃæÇëÇóºÍ·þÎñ²ã£¬»ñÈ¡Ò³ÃæÇëÇóµÄ²ÎÊý£¬Í¨¹ý×Ô¶¯×°Å䣬ӳÉ䲻ͬµÄURLµ½ÏàÓ¦µÄ´¦Àíº¯Êý£¬²¢»ñÈ¡²ÎÊý£¬¶Ô²ÎÊý½øÐд¦Àí£¬Ö®ºó´«¸ø·þÎñ²ã¡£

дJSPÒ³Ãæµ÷Óã¬ÇëÇóÄÄЩ²ÎÊý£¬ÐèÒª»ñȡʲôÊý¾Ý¡£

DataBase ===> Entity ===> Mapper.xml ===> Mapper.Java===> Service.java ===> Controller.java ===> Jsp.

SpringMVCÓµÓпØÖÆÆ÷£¬×÷ÓøúStrutsÀàËÆ£¬½ÓÊÕÍⲿÇëÇ󣬽âÎö²ÎÊý´«¸ø·þÎñ²ã

SpringÈÝÆ÷ÊôÓÚЭµ÷ÉÏÏÂÎÄ£¬¹ÜÀí¶ÔÏó¼äµÄÒÀÀµ£¬ÌṩÊÂÎñ»úÖÆ

mybatisÊôÓÚorm³Ö¾Ã²ã¿ò¼Ü£¬½«ÒµÎñʵÌåÓëÊý¾Ý±íÁªºÏÆðÀ´

SpringMVC¿ØÖƲ㣬Ïëµ±ÓëStrutsµÄ×÷ÓÃ

Spring¿ØÖÆ·´×ªºÍÒÀÀµ×¢Èë´´½¨¶ÔÏó½»ÓÉÈÝÆ÷¹ÜÀí£¬´ïµ½Á˽âñîµÄ×÷ÓÃ

mybatisÖ÷ÒªÓÃÀ´²Ù×÷Êý¾Ý¿â£¨Êý¾Ý¿âµÄÔöɾ¸Ä²é£©

IOC:¿ØÖÆ·´×ª£¬ÊÇÒ»ÖÖ½µµÍ¶ÔÏóÖ®¼äñîºÏ¹ØÏµµÄÉè¼ÆË¼Ïë£¬ÃæÊÔµÄʱºò×îºÃÄÜ˵³öÀ´¸öÀý×Ó£¬¼ÓÉîÀí½â¡£Àý×Ó£º×â·¿×Ó£¬ÒÔǰ×â·¿×ÓÐèÒªÒ»¸ö·¿×ÓÒ»¸ö·¿×ÓÕÒ£¬·Ñʱ·ÑÁ¦£¬È»ºóÏÖÔÚ¼ÓÈëÒ»¸ö·¿ÎÝÖн飬°ÑÄãÐèÒªµÄ·¿Ð͸æËßÖн飬¾Í¿ÉÒÔÖ±½ÓÑ¡µ½ÐèÒªµÄ·¿×Ó£¬Öнé¾ÍÏ൱ÓÚspringÈÝÆ÷¡£

AOP:ÃæÏòÇÐÃæ±à³Ì£¬ÊÇÃæÏò¶ÔÏ󿪷¢µÄÒ»ÖÖ²¹³ä£¬ËüÔÊÐí¿ª·¢ÈËÔ±ÔÚ²»¸Ä±äÔ­À´Ä£Ð͵Ļù´¡É϶¯Ì¬µÄÐÞ¸ÄÄ£ÐÍÒÔÂú×ãеÄÐèÇó£¬È磺¶¯Ì¬µÄÔö¼ÓÈÕÖ¾¡¢°²È«»òÒì³£´¦ÀíµÈ¡£AOPʹҵÎñÂß¼­¸÷²¿·Ö¼äµÄñîºÏ¶È½µµÍ£¬Ìá¸ß³ÌÐò¿ÉÖØÓÃÐÔ£¬Ìá¸ß¿ª·¢Ð§ÂÊ¡£.

³Ö¾Ã²ã£ºDAO²ã£¨mapper£©

DAO²ã£ºDAO²ãÖ÷ÒªÊÇ×öÊý¾Ý³Ö¾Ã²ãµÄ¹¤×÷£¬¸ºÔðÓëÊý¾Ý¿â½øÐÐÁªÂçµÄһЩÈÎÎñ¶¼·â×°ÔÚ´Ë£¬

DAO²ãµÄÉè¼ÆÊ×ÏÈÊÇÉè¼ÆDAOµÄ½Ó¿Ú£¬

È»ºóÔÚSpringµÄÅäÖÃÎļþÖж¨Òå´Ë½Ó¿ÚµÄʵÏÖÀ࣬

È»ºó¾Í¿ÉÔÚÄ£¿éÖе÷Óô˽ӿÚÀ´½øÐÐÊý¾ÝÒµÎñµÄ´¦Àí£¬¶ø²»ÓùØÐĴ˽ӿڵľßÌåʵÏÖÀàÊÇÄĸöÀ࣬ÏԵýṹ·Ç³£ÇåÎú£¬

DAO²ãµÄÊý¾ÝÔ´ÅäÖã¬ÒÔ¼°ÓйØÊý¾Ý¿âÁ¬½ÓµÄ²ÎÊý¶¼ÔÚSpringµÄÅäÖÃÎļþÖнøÐÐÅäÖá£

ÒµÎñ²ã£ºService²ã

Service²ã£ºService²ãÖ÷Òª¸ºÔðÒµÎñÄ£¿éµÄÂß¼­Ó¦ÓÃÉè¼Æ¡£

Ê×ÏÈÉè¼Æ½Ó¿Ú£¬ÔÙÉè¼ÆÆäʵÏÖµÄÀà

½Ó×ÅÔÙÔÚSpringµÄÅäÖÃÎļþÖÐÅäÖÃÆäʵÏֵĹØÁª¡£ÕâÑùÎÒÃǾͿÉÒÔÔÚÓ¦ÓÃÖе÷ÓÃService½Ó¿ÚÀ´½øÐÐÒµÎñ´¦Àí¡£

Service²ãµÄÒµÎñʵÏÖ£¬¾ßÌåÒªµ÷Óõ½ÒѶ¨ÒåµÄDAO²ãµÄ½Ó¿Ú£¬

·â×°Service²ãµÄÒµÎñÂß¼­ÓÐÀûÓÚͨÓõÄÒµÎñÂß¼­µÄ¶ÀÁ¢ÐÔºÍÖØ¸´ÀûÓÃÐÔ£¬³ÌÐòÏԵ÷dz£¼ò½à¡£

±íÏֲ㣺Controller²ã£¨Handler²ã£©

Controller²ã:Controller²ã¸ºÔð¾ßÌåµÄÒµÎñÄ£¿éÁ÷³ÌµÄ¿ØÖÆ£¬

Ôڴ˲ãÀïÃæÒªµ÷ÓÃService²ãµÄ½Ó¿ÚÀ´¿ØÖÆÒµÎñÁ÷³Ì£¬

¿ØÖƵÄÅäÖÃҲͬÑùÊÇÔÚSpringµÄÅäÖÃÎļþÀïÃæ½øÐУ¬Õë¶Ô¾ßÌåµÄÒµÎñÁ÷³Ì£¬»áÓв»Í¬µÄ¿ØÖÆÆ÷£¬ÎÒÃǾßÌåµÄÉè¼Æ¹ý³ÌÖпÉÒÔ½«Á÷³Ì½øÐгéÏó¹éÄÉ£¬Éè¼Æ³ö¿ÉÒÔÖØ¸´ÀûÓõÄ×Óµ¥ÔªÁ÷³ÌÄ£¿é£¬ÕâÑù²»½öʹ³ÌÐò½á¹¹±äµÃÇåÎú£¬Ò²´ó´ó¼õÉÙÁË´úÂëÁ¿¡£

View²ã

View²ã ´Ë²ãÓë¿ØÖÆ²ã½áºÏ±È½Ï½ôÃÜ£¬ÐèÒª¶þÕß½áºÏÆðÀ´Ð­Í¬¹¤·¢¡£View²ãÖ÷Òª¸ºÔðǰ̨jspÒ³ÃæµÄ±íʾ.

¸÷²ãÁªÏµ

DAO²ã£¬Service²ãÕâÁ½¸ö²ã´Î¶¼¿ÉÒÔµ¥¶À¿ª·¢£¬»¥ÏàµÄñîºÏ¶ÈºÜµÍ£¬ÍêÈ«¿ÉÒÔ¶ÀÁ¢½øÐУ¬ÕâÑùµÄÒ»ÖÖģʽÔÚ¿ª·¢´óÏîÄ¿µÄ¹ý³ÌÖÐÓÈÆäÓÐÓÅÊÆ

Controller£¬View²ãÒòΪñîºÏ¶È±È½Ï¸ß£¬Òò¶øÒª½áºÏÔÚÒ»Æð¿ª·¢£¬µ«ÊÇÒ²¿ÉÒÔ¿´×÷Ò»¸öÕûÌå¶ÀÁ¢ÓÚǰÁ½¸ö²ã½øÐпª·¢¡£ÕâÑù£¬ÔÚ²ãÓë²ã֮ǰÎÒÃÇÖ»ÐèÒªÖªµÀ½Ó¿ÚµÄ¶¨Ò壬µ÷Óýӿڼ´¿ÉÍê³ÉËùÐèÒªµÄÂß¼­µ¥ÔªÓ¦Óã¬Ò»ÇÐÏԵ÷dz£ÇåÎú¼òµ¥¡£

ServiceÂß¼­²ãÉè¼Æ

Service²ãÊǽ¨Á¢ÔÚDAO²ãÖ®Éϵ쬽¨Á¢ÁËDAO²ãºó²Å¿ÉÒÔ½¨Á¢Service²ã£¬¶øService²ãÓÖÊÇÔÚController²ã֮ϵģ¬Òò¶øService²ãÓ¦¸Ã¼Èµ÷ÓÃDAO²ãµÄ½Ó¿Ú£¬ÓÖÒªÌṩ½Ó¿Ú¸øController²ãµÄÀàÀ´½øÐе÷Óã¬Ëü¸ÕºÃ´¦ÓÚÒ»¸öÖмä²ãµÄλÖá£Ã¿¸öÄ£ÐͶ¼ÓÐÒ»¸öService½Ó¿Ú£¬Ã¿¸ö½Ó¿Ú·Ö±ð·â×°¸÷×ÔµÄÒµÎñ´¦Àí·½·¨¡£

×î½üÔÚѧϰSpring+SpringMVC+MyBatisµÄÕûºÏ¡£ÒÔÏÂÊDzο¼ÍøÉϵÄ×ÊÁÏ×Ô¼ºÊµ¼ù²Ù×÷µÄÏêϸ²½Öè¡£

1¡¢»ù±¾¸ÅÄî

1.1¡¢Spring

SpringÊÇÒ»¸ö¿ªÔ´¿ò¼Ü£¬SpringÊÇÓÚ2003ÄêÐËÆðµÄÒ»¸öÇáÁ¿¼¶µÄJava¿ª·¢¿ò¼Ü£¬ÓÉRodJohnsonÔÚÆäÖø×÷ExpertOne-On-OneJ2EEDevelopmentandDesignÖвûÊöµÄ²¿·ÖÀíÄîºÍÔ­ÐÍÑÜÉú¶øÀ´¡£ËüÊÇΪÁ˽â¾öÆóÒµÓ¦Óÿª·¢µÄ¸´ÔÓÐÔ¶ø´´½¨µÄ¡£SpringʹÓûù±¾µÄJavaBeanÀ´Íê³ÉÒÔǰֻ¿ÉÄÜÓÉEJBÍê³ÉµÄÊÂÇ顣Ȼ¶ø£¬SpringµÄÓÃ;²»½öÏÞÓÚ·þÎñÆ÷¶ËµÄ¿ª·¢¡£´Ó¼òµ¥ÐÔ¡¢¿É²âÊÔÐÔºÍËÉñîºÏµÄ½Ç¶È¶øÑÔ£¬ÈκÎJavaÓ¦Óö¼¿ÉÒÔ´ÓSpringÖÐÊÜÒæ¡£¼òµ¥À´Ëµ£¬SpringÊÇÒ»¸öÇáÁ¿¼¶µÄ¿ØÖÆ·´×ª£¨IoC£©ºÍÃæÏòÇÐÃæ£¨AOP£©µÄÈÝÆ÷¿ò¼Ü¡£

1.2¡¢SpringMVC

SpringMVCÊôÓÚSpringFrameWorkµÄºóÐø²úÆ·£¬ÒѾ­ÈÚºÏÔÚSpringWebFlowÀïÃæ¡£SpringMVC·ÖÀëÁË¿ØÖÆÆ÷¡¢Ä£ÐͶÔÏó¡¢·ÖÅÉÆ÷ÒÔ¼°´¦Àí³ÌÐò¶ÔÏóµÄ½ÇÉ«£¬ÕâÖÖ·ÖÀëÈÃËüÃǸüÈÝÒ×½øÐж¨ÖÆ¡£

1.3¡¢MyBatis

MyBatis±¾ÊÇapacheµÄÒ»¸ö¿ªÔ´ÏîÄ¿iBatis,2010ÄêÕâ¸öÏîÄ¿ÓÉapachesoftwarefoundationÇ¨ÒÆµ½ÁËgooglecode£¬²¢ÇÒ¸ÄÃûΪMyBatis¡£MyBatisÊÇÒ»¸ö»ùÓÚJavaµÄ³Ö¾Ã²ã¿ò¼Ü¡£iBATISÌṩµÄ³Ö¾Ã²ã¿ò¼Ü°üÀ¨SQLMapsºÍDataAccessObjects£¨DAO£©MyBatisÏû³ýÁ˼¸ºõËùÓеÄJDBC´úÂëºÍ²ÎÊýµÄÊÖ¹¤ÉèÖÃÒÔ¼°½á¹û¼¯µÄ¼ìË÷¡£MyBatisʹÓüòµ¥µÄXML»ò×¢½âÓÃÓÚÅäÖúÍԭʼӳÉ䣬½«½Ó¿ÚºÍJavaµÄPOJOs£¨PlainOldJavaObjects£¬ÆÕͨµÄJava¶ÔÏó£©Ó³Éä³ÉÊý¾Ý¿âÖеļǼ¡£

2¡¢¿ª·¢»·¾³´î½¨ÒÔ¼°´´½¨Maven WebÏîÄ¿

ǰ²Î¿¼ÆäËûÎÄÕÂ

3¡¢SSMÕûºÏ

ÏÂÃæÖ÷Òª½éÉÜÈý´ó¿ò¼ÜµÄÕûºÏ£¬ÖÁÓÚ»·¾³µÄ´î½¨ÒÔ¼°ÏîÄ¿µÄ´´½¨£¬²Î¿´ÉÏÃæµÄ²©ÎÄ¡£Õâ´ÎÕûºÏÎÒ·ÖÁË2¸öÅäÖÃÎļþ£¬·Ö±ðÊÇspring-mybatis.xml£¬°üº¬springºÍmybatisµÄÅäÖÃÎļþ£¬»¹ÓиöÊÇspring-mvcµÄÅäÖÃÎļþ£¬´ËÍâÓÐ2¸ö×ÊÔ´Îļþ£ºjdbc.propertisºÍlog4j.properties¡£ÍêÕûĿ¼½á¹¹ÈçÏ£¨×îºó¸½ÉÏÔ´ÂëÏÂÔØµØÖ·£©£º

ʹÓÿò¼ÜµÄ°æ±¾£º

Spring4.0.2RELEASE

SpringMVC4.0.2RELEASE

MyBatis3.2.6

3.1¡¢MavenÒýÈëÐèÒªµÄJAR°ü

ÔÚpom.xmlÖÐÒýÈëjar°ü

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javen.maven01</groupId>
<artifactId>maven01</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>maven01 Maven Webapp</name>
<url>http://maven.apache.org</url>

<properties>
<!-- spring°æ±¾ºÅ -->
<spring.version>4.0.2.RELEASE</spring.version>
<!-- mybatis°æ±¾ºÅ -->
<mybatis.version>3.2.6</mybatis.version>
<!-- log4jÈÕÖ¾Îļþ¹ÜÀí°ü°æ±¾ -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- ±íʾ¿ª·¢µÄʱºòÒýÈ룬·¢²¼µÄʱºò²»»á¼ÓÔØ´Ë°ü -->
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency> -->

<!-- springºËÐİü -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatisºËÐİü -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring°ü -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>

<!-- µ¼Èëjava ee jar °ü -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>

<!-- µ¼ÈëMysqlÊý¾Ý¿âÁ´½Ójar°ü -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<!-- µ¼ÈëdbcpµÄjar°ü£¬ÓÃÀ´ÔÚapplicationContext.xmlÖÐÅäÖÃÊý¾Ý¿â -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>

<!-- JSTL±êÇ©Àà -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- ÈÕÖ¾Îļþ¹ÜÀí°ü -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>


<!-- ¸ñʽ»¯¶ÔÏ󣬷½±ãÊä³öÈÕÖ¾ -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>


<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- Ó³ÈëJSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- ÉÏ´«×é¼þ°ü -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>

<build>
<finalName>maven01</finalName>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.8.v20150217</version>
<configuration>
<httpConnector>
<port>80</port>
</httpConnector>
<stopKey>shutdown</stopKey>
<stopPort>9966</stopPort>
</configuration>
</plugin>
</plugins>
</build>
</project>

3.2¡¢ÕûºÏSpringMVC

3.2.1¡¢ÅäÖÃspring-mvc.xml

ÅäÖÃÀïÃæµÄ×¢ÊÍÒ²ºÜÏêϸ£¬Ö÷ÒªÊÇ×Ô¶¯É¨Ãè¿ØÖÆÆ÷£¬ÊÓͼģʽ£¬×¢½âµÄÆô¶¯ÕâÈý¸ö¡£

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org
/schema/beans"
xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xmlns:p="
http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.
org/schema/context"
xmlns:mvc="http://www.springframework.
org/schema/mvc"
xsi:schemaLocation="http://www.springframework.
org/schema/beans
http://www.springframework.org/schema/beans
/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context
/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc
/spring-mvc-4.0.xsd">
<!-- ×Ô¶¯É¨Ãè¸Ã°ü£¬Ê¹SpringMVCÈÏΪ°üÏÂÓÃÁË
@controller×¢½âµÄÀàÊÇ¿ØÖÆÆ÷ -->
<context:component-scan base-package=
"com.javen.controller" />
<!-- À©³äÁË×¢½âÇý¶¯£¬¿ÉÒÔ½«ÇëÇó²ÎÊý°ó¶¨µ½¿ØÖÆÆ÷²ÎÊý -->
<mvc:annotation-driven/>
<!-- ¾²Ì¬×ÊÔ´´¦Àí css js imgs -->
<mvc:resources location="/resources/**" mapping="/resources"/>

<!--±ÜÃâIEÖ´ÐÐAJAXʱ£¬·µ»ØJSON³öÏÖÏÂÔØÎļþ -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.
MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- Æô¶¯SpringMVCµÄ×¢½â¹¦ÄÜ£¬Íê³ÉÇëÇóºÍ×¢½âPOJOµÄÓ³Éä -->
<bean
class="org.springframework.web.servlet.mvc.
annotation. AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
<!-- JSONת»»Æ÷ -->
</list>
</property>
</bean>

<!-- ÅäÖÃÎļþÉÏ´«£¬Èç¹ûûÓÐʹÓÃÎļþÉÏ´«¿ÉÒÔ²»ÓÃÅäÖ㬵±È»Èç¹û²»Å䣬ÄÇôÅäÖÃÎļþÖÐÒ²²»±ØÒýÈëÉÏ´«×é¼þ°ü -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.
CommonsMultipartResolver">
<!-- ĬÈϱàÂë -->
<property name="defaultEncoding" value="utf-8" />
<!-- Îļþ´óС×î´óÖµ -->
<property name="maxUploadSize" value="10485760000" />
<!-- ÄÚ´æÖеÄ×î´óÖµ -->
<property name="maxInMemorySize" value="40960" />
<!-- ÆôÓÃÊÇΪÁËÍÆ³ÙÎļþ½âÎö£¬ÒԱ㲶»ñÎļþ´óСÒì³£ -->
<property name="resolveLazily" value="true"/>
</bean>

<!-- ÅäÖÃViewResolver ¡£¿ÉÓöà¸öViewResolver ¡£Ê¹ÓÃorderÊôÐÔÅÅÐò¡£ InternalResourceViewResolver ·ÅÔÚ×îºó-->
<bean class="org.springframework.web.servlet.view.
ContentNegotiatingViewResolver">
<property name="order" value="1"></property>
<property name="mediaTypes">
<map>
<!-- ¸æËßÊÓͼ½âÎöÆ÷£¬·µ»ØµÄÀàÐÍΪjson¸ñʽ -->
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
<entry key="htm" value="text/htm" />
</map>
</property>
<property name="defaultViews">
<list>
<!-- ModelAndViewÀïµÄÊý¾Ý±ä³ÉJSON -->
<bean class="org.springframework.web.servlet.view.json.
MappingJacksonJsonView" />
</list>
</property>
<property name="ignoreAcceptHeader" value="true">
</property>
</bean>

<!-- ¶¨ÒåÌø×ªµÄÎļþµÄǰºó׺ £¬ÊÓͼģʽÅäÖÃ-->
<bean class="org.springframework.web.servlet.view.
InternalResourceViewResolver">
<!-- ÕâÀïµÄÅäÖÃÎÒµÄÀí½âÊÇ×Ô¶¯¸øºóÃæactionµÄ·½·¨returnµÄ×Ö·û´®¼ÓÉÏǰ׺ºÍºó׺£¬±ä³ÉÒ»¸ö ¿ÉÓõÄurlµØÖ· -->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

3.2.2¡¢ÅäÖÃweb.xmlÎļþ

ÅäÖõÄspring-mvcµÄServlet¾ÍÊÇΪÁËÍê³ÉSpringMVC+MAVENµÄÕûºÏ¡£

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Archetype Created Web Application</display-name>
<!-- SpringºÍmybatisµÄÅäÖÃÎļþ -->
<!-- <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param> -->
<!-- ±àÂë¹ýÂËÆ÷ -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.
CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring¼àÌýÆ÷ -->
<!-- <listener>
<listener-class>org.springframework.web.context.
ContextLoaderListener</listener-class>
</listener> -->
<!-- ·ÀÖ¹SpringÄÚ´æÒç³ö¼àÌýÆ÷ -->
<!-- <listener>
<listener-class>org.springframework.web.util.
IntrospectorCleanupListener</listener-class>
</listener> -->

<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.
DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- ´Ë´¦¿ÉÒÔ¿ÉÒÔÅäÖóÉ*.do£¬¶ÔÓ¦strutsµÄºó׺ϰ¹ß -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>

</web-app>

 

3.2.3¡¢Log4jµÄÅäÖÃ

ΪÁË·½±ãµ÷ÊÔ£¬Ò»°ã¶¼»áʹÓÃÈÕÖ¾À´Êä³öÐÅÏ¢£¬Log4jÊÇApacheµÄÒ»¸ö¿ª·ÅÔ´´úÂëÏîÄ¿£¬Í¨¹ýʹÓÃLog4j£¬ÎÒÃÇ¿ÉÒÔ¿ØÖÆÈÕÖ¾ÐÅÏ¢ÊäË͵ÄÄ¿µÄµØÊÇ¿ØÖÆÌ¨¡¢Îļþ¡¢GUI×é¼þ£¬ÉõÖÁÊÇÌ×½Ó¿Ú·þÎñÆ÷¡¢NTµÄʼþ¼Ç¼Æ÷¡¢UNIXSyslogÊØ»¤½ø³ÌµÈ£»ÎÒÃÇÒ²¿ÉÒÔ¿ØÖÆÃ¿Ò»ÌõÈÕÖ¾µÄÊä³ö¸ñʽ£»Í¨¹ý¶¨ÒåÿһÌõÈÕÖ¾ÐÅÏ¢µÄ¼¶±ð£¬ÎÒÃÇÄܹ»¸ü¼ÓϸÖµؿØÖÆÈÕÖ¾µÄÉú³É¹ý³Ì¡£

Log4jµÄÅäÖúܼòµ¥£¬¶øÇÒÒ²ÊÇͨÓõģ¬ÏÂÃæ¸ø³öÒ»¸ö»ù±¾µÄÅäÖ㬻»µ½ÆäËûÏîÄ¿ÖÐÒ²ÎÞÐè×ö¶à´óµÄµ÷Õû¡£

ÏÂÃæ¸ø³öÅäÖÃÎļþĿ¼£º

log4j.properties

log4j.rootLogger=INFO,Console,File
#¶¨ÒåÈÕÖ¾Êä³öÄ¿µÄµØÎª¿ØÖÆÌ¨
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#¿ÉÒÔÁé»îµØÖ¸¶¨ÈÕÖ¾Êä³ö¸ñʽ£¬ÏÂÃæÒ»ÐÐÊÇÖ¸¶¨¾ßÌåµÄ¸ñʽ
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

#Îļþ´óСµ½´ïÖ¸¶¨³ß´çµÄʱºò²úÉúÒ»¸öеÄÎļþ
log4j.appender.File = org.apache.log4j.RollingFileAppender
#Ö¸¶¨Êä³öĿ¼
log4j.appender.File.File = logs/ssm.log
#¶¨ÒåÎļþ×î´ó´óС
log4j.appender.File.MaxFileSize = 10MB
# Êä³öËùÒÔÈÕÖ¾£¬Èç¹û»»³ÉDEBUG±íʾÊä³öDEBUGÒÔÉϼ¶±ðÈÕÖ¾
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

3.2.4¡¢Ê¹ÓÃJetty²âÊÔ

package com.javen.model;
public class User {
private Integer id;
private String userName;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password="
+ password + ", age=" + age + "]";
}


}

package com.javen.controller;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.javen.model.User;


@Controller
@RequestMapping("/user")
// /user/**
public class UserController {
private static Logger log=LoggerFactory.getLogger(UserController.class);


// /user/test?id=1
@RequestMapping(value="/test",method=RequestMethod.GET)
public String test(HttpServletRequest request,Model model){
int userId = Integer.parseInt(request.getParameter("id"));
System.out.println("userId:"+userId);
User user=null;
if (userId==1) {
user = new User();
user.setAge(11);
user.setId(1);
user.setPassword("123");
user.setUserName("javen");
}

log.debug(user.toString());
model.addAttribute("user", user);
return "index";
}
}

ÔÚä¯ÀÀÆ÷ÖÐÊäÈ룺http://localhost/user/testid=1

µ½´Ë SpringMVC+Maven ÕûºÏÍê±Ï

3.3 SpringÓëMyBatisµÄÕûºÏ

È¡Ïû3.2.2 web.xmlÖÐ×¢Ê͵ĴúÂë

3.3.1¡¢½¨Á¢JDBCÊôÐÔÎļþ

jdbc.properties£¨Îļþ±àÂëÐÞ¸ÄΪutf-8£©

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/maven
username=root
password=root
#¶¨Òå³õʼÁ¬½ÓÊý
initialSize=0
#¶¨Òå×î´óÁ¬½ÓÊý
maxActive=20
#¶¨Òå×î´ó¿ÕÏÐ
maxIdle=20
#¶¨Òå×îС¿ÕÏÐ
minIdle=1
#¶¨Òå×µÈ´ýʱ¼ä
maxWait=60000

 

´ËʱµÄĿ¼½á¹¹Îª

3.3.2¡¢½¨Á¢spring-mybatis.xmlÅäÖÃÎļþ

Õâ¸öÎļþ¾ÍÊÇÓÃÀ´Íê³ÉspringºÍmybatisµÄÕûºÏµÄ¡£ÕâÀïÃæÒ²Ã»¶àÉÙÐÐÅäÖã¬Ö÷ÒªµÄ¾ÍÊÇ×Ô¶¯É¨Ã裬×Ô¶¯×¢È룬ÅäÖÃÊý¾Ý¿â¡£×¢ÊÍÒ²ºÜÏêϸ£¬´ó¼Ò¿´¿´¾ÍÃ÷°×ÁË¡£

spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/
schema/beans"
xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xmlns:p=
"http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.
org/schema/context"
xmlns:mvc="http://www.springframework.
org/schema/mvc"
xsi:schemaLocation="http://www.springframework.
org/schema/beans
http://www.springframework.org/schema/beans
/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context
/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/
spring-mvc-4.0.xsd">
<!-- ×Ô¶¯É¨Ãè -->
<context:component-scan base-package="com.javen" />

<!-- ÒýÈëÅäÖÃÎļþ -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.
PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- ³õʼ»¯Á¬½Ó´óС -->
<property name="initialSize" value="${initialSize}"
></property>
<!-- Á¬½Ó³Ø×î´óÊýÁ¿ -->
<property name="maxActive" value="${maxActive}">
</property>
<!-- Á¬½Ó³Ø×î´ó¿ÕÏÐ -->
<property name="maxIdle" value="${maxIdle}">
</property>
<!-- Á¬½Ó³Ø×îС¿ÕÏÐ -->
<property name="minIdle" value="${minIdle}">
</property>
<!-- »ñÈ¡Á¬½Ó×î´óµÈ´ýʱ¼ä -->
<property name="maxWait" value="${maxWait}"></property>
</bean>

<!-- springºÍMyBatisÍêÃÀÕûºÏ£¬²»ÐèÒªmybatisµÄÅäÖÃÓ³ÉäÎļþ -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.
SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- ×Ô¶¯É¨Ãèmapping.xmlÎļþ -->
<property name="mapperLocations" value="classpath:com/javen/mapping/*.xml"></property>
</bean>

<!-- DAO½Ó¿ÚËùÔÚ°üÃû£¬Spring»á×Ô¶¯²éÕÒÆäϵÄÀà -->
<bean class="org.mybatis.spring.mapper.
MapperScannerConfigurer">
<property name="basePackage" value="com.javen.dao" />
<property name="sqlSessionFactoryBeanName"
value="sqlSessionFactory"></property>
</bean>

<!-- (ÊÂÎñ¹ÜÀí)transaction
manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.
DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

</beans>

3.4¡¢JUnit²âÊÔ

¾­¹ýÒÔÉϲ½Ö裬ÎÒÃÇÒѾ­Íê³ÉÁËSpringºÍmybatisµÄÕûºÏ£¬ÕâÑùÎÒÃǾͿÉÒÔ±àдһ¶Î²âÊÔ´úÂëÀ´ÊÔÊÔÊÇ·ñ³É¹¦ÁË¡£

3.4.1¡¢´´½¨²âÊÔÓñí

¼ÈÈ»ÎÒÃÇÐèÒª²âÊÔ£¬ÄÇôÎÒÃǾÍÐèÒª½¨Á¢ÔÚÊý¾Ý¿âÖн¨Á¢Ò»¸ö²âÊÔ±í£¬Õâ¸ö±í½¨µÄºÜ¼òµ¥£¬SQLÓï¾äΪ£º

-- ----------------------------
-- Table structure for `user_t`
-- ----------------------------
DROP TABLE IF EXISTS `user_t`;
CREATE TABLE `user_t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(40) NOT NULL,
`password` varchar(255) NOT NULL,
`age` int(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user_t
-- ----------------------------
INSERT INTO `user_t` VALUES ('1', '²âÊÔ', '345', '24');
INSERT INTO `user_t` VALUES ('2', 'javen', '123', '10');

3.4.2¡¢ÀûÓÃMyBatis Generator×Ô¶¯´´½¨´úÂë

Õâ¸ö¿É¸ù¾Ý±í×Ô¶¯´´½¨ÊµÌåÀà¡¢MyBatisÓ³ÉäÎļþÒÔ¼°DAO½Ó¿Ú£¬µ±È»£¬ÎÒϰ¹ß½«Éú³ÉµÄ½Ó¿ÚÃû¸ÄΪIUserDao£¬¶ø²»ÊÇÖ±½ÓÓÃËüÉú³ÉµÄUserMapper¡£Èç¹û²»ÏëÂé·³¾Í¿ÉÒÔ²»¸Ä¡£Íê³Éºó½«Îļþ¸´ÖƵ½¹¤³ÌÖС£Èçͼ£º

3.4.3¡¢½¨Á¢Service½Ó¿ÚºÍʵÏÖÀà

ÏÂÃæ¸ø³ö¾ßÌåµÄÄÚÈÝ£º

IUserService.jave

package com.javen.service;
import com.javen.model.User;


public interface IUserService {
public User getUserById(int userId);
}

UserServiceImpl.java

package com.javen.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.javen.dao.IUserDao;
import com.javen.model.User;
import com.javen.service.IUserService;


@Service("userService")
public class UserServiceImpl implements IUserService {
@Resource
private IUserDao userDao;

public User getUserById(int userId) {
// TODO Auto-generated method stub
return this.userDao.selectByPrimaryKey(userId);
}

}

3.4.4¡¢½¨Á¢²âÊÔÀà

²âÊÔÀàÔÚsrc/test/javaÖн¨Á¢£¬ÏÂÃæ²âÊÔÀàÖÐ×¢Ê͵ôµÄ²¿·ÖÊDz»Ê¹ÓÃSpringʱ£¬Ò»°ãÇé¿öϵÄÒ»ÖÖ²âÊÔ·½·¨£»Èç¹ûʹÓÃÁËSpringÄÇô¾Í¿ÉÒÔʹÓÃ×¢½âµÄ·½Ê½À´ÒýÈëÅäÖÃÎļþºÍÀ࣬ȻºóÔÙ½«service½Ó¿Ú¶ÔÏó×¢È룬¾Í¿ÉÒÔ½øÐвâÊÔÁË¡£

Èç¹û²âÊԳɹ¦£¬±íʾSpringºÍMybatisÒѾ­ÕûºÏ³É¹¦ÁË¡£Êä³öÐÅϢʹÓõÄÊÇLog4j´òÓ¡µ½¿ØÖÆÌ¨¡£

package com.javen.testmybatis;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.
ContextConfiguration;
import org.springframework.test.context.
junit4.SpringJUnit4ClassRunner;
import com.alibaba.fastjson.JSON;
import com.javen.model.User;
import com.javen.service.IUserService;

@RunWith(SpringJUnit4ClassRunner.class)
//±íʾ¼Ì³ÐÁËSpringJUnit4ClassRunnerÀà
@ContextConfiguration(locations =
{"classpath:spring-mybatis.xml"})

public class TestMyBatis {
private static Logger logger = Logger.getLogger(TestMyBatis.class);
// private ApplicationContext ac = null;
@Resource
private IUserService userService = null;

// @Before
// public void before() {
// ac = new ClassPathXmlApplicationContext
("applicationContext.xml");
// userService = (IUserService) ac.getBean("userService");
// }

@Test
public void test1() {
User user = userService.getUserById(1);
// System.out.println(user.getUserName());
// logger.info("Öµ£º"+user.getUserName());
logger.info(JSON.toJSONString(user));
}
}

²âÊÔ½á¹û

3.4.5¡¢½¨Á¢UserControllerÀà

UserController.java¿ØÖÆÆ÷

package com.javen.controller;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind
.annotation.PathVariable;
import org.springframework.web.bind.
annotation.RequestMapping;
import org.springframework.web.bind.
annotation.RequestMethod;
import org.springframework.web.bind.
annotation.RequestParam;
import org.springframework.web.bind.
annotation.ResponseBody;
import org.springframework.web.multipart.
MultipartFile;
import com.javen.model.User;
import com.javen.service.IUserService;


@Controller
@RequestMapping("/user")
// /user/**
public class UserController {
private static Logger log=LoggerFactory
.getLogger(UserController.class);
@Resource
private IUserService userService;

// /user/test?id=1
@RequestMapping(value="/test",method
=RequestMethod.GET)
public String test(HttpServletRequest
request,Model model){
int userId = Integer.parseInt(request.
getParameter("id"));
System.out.println("userId:"+userId);
User user=null;
if (userId==1) {
user = new User();
user.setAge(11);
user.setId(1);
user.setPassword("123");
user.setUserName("javen");
}

log.debug(user.toString());
model.addAttribute("user", user);
return "index";
}


// /user/showUser?id=1
@RequestMapping(value="/showUser",
method=RequestMethod.GET)
public String toIndex(HttpServletRequest request
,Model model){
int userId = Integer.parseInt(request.getParameter
("id"));
System.out.println("userId:"+userId);
User user = this.userService.getUserById(userId);
log.debug(user.toString());
model.addAttribute("user", user);
return "showUser";
}

// /user/showUser2?id=1
@RequestMapping(value="/showUser2"
,method=RequestMethod.GET)
public String toIndex2(@RequestParam("id")
String id,Model model){
int userId = Integer.parseInt(id);
System.out.println("userId:"+userId);
User user = this.userService.getUserById(userId);
log.debug(user.toString());
model.addAttribute("user", user);
return "showUser";
}


// /user/showUser3/{id}
@RequestMapping(value="/showUser3/{id}",
method=RequestMethod.GET)
public String toIndex3(@PathVariable("id")String
id,Map<String, Object> model){
int userId = Integer.parseInt(id);
System.out.println("userId:"+userId);
User user = this.userService.getUserById(userId);
log.debug(user.toString());
model.put("user", user);
return "showUser";
}

// /user/{id}
@RequestMapping(value="/{id}"
,method=RequestMethod.GET)
public @ResponseBody User getUserInJson(@PathVariable
String id,Map<String, Object> model){
int userId = Integer.parseInt(id);
System.out.println("userId:"+userId);
User user = this.userService.getUserById(userId);
log.info(user.toString());
return user;
}

// /user/{id}
@RequestMapping(value="/jsontype/{id}",
method=RequestMethod.GET)
public ResponseEntity<User> getUserInJson2
(@PathVariable String id,Map<String, Object> model){
int userId = Integer.parseInt(id);
System.out.println("userId:"+userId);
User user = this.userService.getUserById(userId);
log.info(user.toString());
return new ResponseEntity<User>(user,HttpStatus.OK);
}

//ÎļþÉÏ´«¡¢
@RequestMapping(value="/upload")
public String showUploadPage(){
return "user_admin/file";
}

@RequestMapping(value="/doUpload",
method=RequestMethod.POST)
public String doUploadFile(@RequestParam("file")
MultipartFile file) throws IOException{
if (!file.isEmpty()) {
log.info("Process file:{}",file.getOriginalFilename());
}
FileUtils.copyInputStreamToFile(file.getInputStream(),
new File("E:\\",System.currentTimeMillis()+
file.getOriginalFilename()));
return "succes";
}
}

3.4.6¡¢Ð½¨jspÒ³Ãæ

file.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>ÉÏ´«Îļþ</h1>
<form method="post" action="/user/doUpload" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="ÉÏ´«Îļþ"/>

</form>
</body>
</html>

index.jsp

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

showUser.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>²âÊÔ</title>
</head>

<body>
${user.userName}
</body>
</html>

ÖÁ´Ë£¬Íê³ÉSpring+SpingMVC+mybatisÕâÈý´ó¿ò¼ÜÕûºÏÍê³É¡£

3.4.7¡¢²¿ÊðÏîÄ¿

ÊäÈëµØÖ·£ºhttp://localhost/user/jsontype/2

ÏîÄ¿ÏÂÔØµØÖ·£ºhttps://github.com/Javen205/SSM

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

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

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

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