±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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 |