1. Spring¿ò¼ÜµÄ×÷ÓÃ
- ÇáÁ¿£ºSpringÊÇÇáÁ¿¼¶µÄ£¬»ù±¾µÄ°æ±¾´óСΪ2MB
- ¿ØÖÆ·´×ª£ºSpringͨ¹ý¿ØÖÆ·´×ªÊµÏÖÁËËÉÉ¢ñîºÏ£¬¶ÔÏóÃǸø³öËüÃǵÄÒÀÀµ£¬¶ø²»ÊÇ´´½¨»ò²éÕÒÒÀÀµµÄ¶ÔÏóÃÇ¡£
- ÃæÏòÇÐÃæµÄ±à³ÌAOP:SpringÖ§³ÖÃæÏòÇÐÃæµÄ±à³Ì£¬²¢ÇÒ°ÑÓ¦ÓÃÒµÎñÂß¼ºÍϵͳ·þÎñ·Ö¿ª¡£
- ÈÝÆ÷£ºSpring°üº¬²¢¹ÜÀíÓ¦ÓÃÖжÔÏóµÄÉúÃüÖÜÆÚºÍÅäÖÃ
- MVC¿ò¼Ü£º Spring-MVC
- ÊÂÎñ¹ÜÀí£ºSpringÌṩһ¸ö³ÖÐøµÄÊÂÎñ¹ÜÀí½Ó¿Ú£¬¿ÉÒÔÀ©Õ¹µ½ÉÏÖÁ±¾µØÊÂÎñÏÂÖÁÈ«¾ÖÊÂÎñJTA
- Òì³£´¦Àí£ºSpringÌṩ·½±ãµÄAPI°Ñ¾ßÌå¼¼ÊõÏà¹ØµÄÒì³£
2. SpringµÄ×é³É
SpringÓÉ7¸öÄ£¿é×é³É£º
- Spring Core: ºËÐÄÈÝÆ÷Ìṩ Spring ¿ò¼ÜµÄ»ù±¾¹¦ÄÜ¡£ºËÐÄÈÝÆ÷µÄÖ÷Òª×é¼þÊÇBeanFactory£¬ËüÊǹ¤³§Ä£Ê½µÄʵÏÖ¡£BeanFactory ʹÓÿØÖÆ·´×ª £¨IOC£© ģʽ½«Ó¦ÓóÌÐòµÄÅäÖúÍÒÀÀµÐԹ淶Óëʵ¼ÊµÄÓ¦ÓóÌÐò´úÂë·Ö¿ª¡£
- Spring ÉÏÏÂÎÄ£ºSpring ÉÏÏÂÎÄÊÇÒ»¸öÅäÖÃÎļþ£¬Ïò Spring ¿ò¼ÜÌṩÉÏÏÂÎÄÐÅÏ¢¡£Spring ÉÏÏÂÎÄ°üÀ¨ÆóÒµ·þÎñ£¬ÀýÈç JNDI¡¢EJB¡¢µç×ÓÓʼþ¡¢¹ú¼Ê»¯¡¢Ð£ÑéºÍµ÷¶È¹¦ÄÜ¡£
- Spring AOP£ºÍ¨¹ýÅäÖùÜÀíÌØÐÔ£¬Spring AOP Ä£¿éÖ±½Ó½«ÃæÏò·½ÃæµÄ±à³Ì¹¦Äܼ¯³Éµ½ÁË Spring ¿ò¼ÜÖС£ËùÒÔ£¬¿ÉÒÔºÜÈÝÒ×µØʹ Spring ¿ò¼Ü¹ÜÀíµÄÈκζÔÏóÖ§³Ö AOP¡£Spring AOP Ä£¿éΪ»ùÓÚ Spring µÄÓ¦ÓóÌÐòÖеĶÔÏóÌṩÁËÊÂÎñ¹ÜÀí·þÎñ¡£Í¨¹ýʹÓà Spring AOP£¬²»ÓÃÒÀÀµ EJB ×é¼þ£¬¾Í¿ÉÒÔ½«ÉùÃ÷ÐÔÊÂÎñ¹ÜÀí¼¯³Éµ½Ó¦ÓóÌÐòÖС£
- Spring DAO£ºJDBC DAO ³éÏó²ãÌṩÁËÓÐÒâÒåµÄÒì³£²ã´Î½á¹¹£¬¿ÉÓøýṹÀ´¹ÜÀíÒì³£´¦ÀíºÍ²»Í¬Êý¾Ý¿â¹©Ó¦ÉÌÅ׳öµÄ´íÎóÏûÏ¢¡£Òì³£²ã´Î½á¹¹¼ò»¯ÁË´íÎó´¦Àí£¬²¢ÇÒ¼«´óµØ½µµÍÁËÐèÒª±àдµÄÒì³£´úÂëÊýÁ¿£¨ÀýÈç´ò¿ªºÍ¹Ø±ÕÁ¬½Ó£©¡£Spring DAO µÄÃæÏò JDBC µÄÒì³£×ñ´ÓͨÓÃµÄ DAO Òì³£²ã´Î½á¹¹¡£
- Spring ORM£ºSpring ¿ò¼Ü²åÈëÁËÈô¸É¸ö ORM ¿ò¼Ü£¬´Ó¶øÌṩÁË ORM µÄ¶ÔÏó¹Øϵ¹¤¾ß£¬ÆäÖаüÀ¨ JDO¡¢Hibernate ºÍ iBatis SQL Map¡£ËùÓÐÕâЩ¶¼×ñ´Ó Spring µÄͨÓÃÊÂÎñºÍ DAO Òì³£²ã´Î½á¹¹¡£
- Spring Web Ä£¿é£ºWeb ÉÏÏÂÎÄÄ£¿é½¨Á¢ÔÚÓ¦ÓóÌÐòÉÏÏÂÎÄÄ£¿éÖ®ÉÏ£¬Îª»ùÓÚ Web µÄÓ¦ÓóÌÐòÌṩÁËÉÏÏÂÎÄ¡£ËùÒÔ£¬Spring ¿ò¼ÜÖ§³ÖÓë Jakarta Struts µÄ¼¯³É¡£Web Ä£¿é»¹¼ò»¯ÁË´¦Àí¶à²¿·ÖÇëÇóÒÔ¼°½«ÇëÇó²ÎÊý°ó¶¨µ½Óò¶ÔÏóµÄ¹¤×÷¡£
- Spring MVC ¿ò¼Ü£ºMVC ¿ò¼ÜÊÇÒ»¸öÈ«¹¦ÄܵĹ¹½¨ Web Ó¦ÓóÌÐòµÄ MVC ʵÏÖ¡£Í¨¹ý²ßÂÔ½Ó¿Ú£¬MVC ¿ò¼Ü±ä³ÉΪ¸ß¶È¿ÉÅäÖõģ¬MVC ÈÝÄÉÁË´óÁ¿ÊÓͼ¼¼Êõ£¬ÆäÖаüÀ¨ JSP¡¢Velocity¡¢Tiles¡¢iText ºÍ POI¡£
3. SpringÈÝÆ÷
SpingµÄÈÝÆ÷¿ÉÒÔ·ÖΪÁ½ÖÖÀàÐÍ
- BeanFactory£º£¨org.springframework.beans.factory.BeanFactory½Ó¿Ú¶¨Ò壩ÊÇ×î¼ò´ðµÄÈÝÆ÷£¬ÌṩÁË»ù±¾µÄDIÖ§³Ö¡£×î³£ÓõÄBeanFactoryʵÏÖ¾ÍÊÇXmlBeanFactoryÀ࣬Ëü¸ù¾ÝXMLÎļþÖеĶ¨Òå¼ÓÔØbeans£¬¸ÃÈÝÆ÷´ÓXMLÎļþ¶ÁÈ¡ÅäÖÃÔªÊý¾Ý²¢ÓÃËüÈ¥´´½¨Ò»¸öÍêÈ«ÅäÖõÄϵͳ»òÓ¦Óá£
- ApplicationContextÓ¦ÓÃÉÏÏÂÎÄ£º£¨org.springframework.context.ApplicationContext£©»ùÓÚBeanFactoryÖ®ÉϹ¹½¨£¬²¢ÌṩÃæÏòÓ¦ÓõķþÎñ¡£
4. ApplicationContextͨ³£µÄʵÏÖ
- ClassPathXmlApplicationContext£º´ÓÀà·¾¶ÏµÄXMLÅäÖÃÎļþÖмÓÔØÉÏÏÂÎĶ¨Ò壬°ÑÓ¦ÓÃÉÏÏÂÎĶ¨ÒåÎļþµ±×öÀà×ÊÔ´¡£
- FileSystemXmlApplicationContext£º¶ÁÈ¡ÎļþϵͳϵÄXMLÅäÖÃÎļþ²¢¼ÓÔØÉÏÏÂÎĶ¨Òå¡£
- XmlWebApplicationContext£º¶ÁÈ¡WebÓ¦ÓÃϵÄXMLÅäÖÃÎļþ²¢×°ÔØÉÏÏÂÎĶ¨Òå¡£
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
5. IOC & DI
Inversion of Control£¬ Ò»°ã·ÖΪÁ½ÖÖÀàÐÍ£ºÒÀÀµ×¢ÈëDI(Dependency Injection)ºÍÒÀÀµ²éÕÒ£¨Dependency Lookup£©.ÒÀÀµ×¢ÈëÓ¦ÓñȽϹ㷺¡£
Spring IOC¸ºÔð´´½¨¶ÔÏ󣬹ÜÀí¶ÔÏó£¨DI£©£¬×°Åä¶ÔÏó£¬ÅäÖöÔÏ󣬲¢ÇÒ¹ÜÀíÕâЩ¶ÔÏóµÄÕû¸öÉúÃüÖÜÆÚ¡£
Óŵ㣺°ÑÓ¦ÓõĴúÂëÁ¿½µµ½×îµÍ¡£ÈÝÆ÷²âÊÔ£¬×îСµÄ´ú¼ÛºÍ×îСµÄÇÖÈëÐÔʹËÉÉ¢ñîºÏµÃÒÔʵÏÖ¡£IOCÈÝÆ÷Ö§³Ö¼ÓÔØ·þÎñʱµÄ¶öººÊ½³õʼ»¯ºÍÀÁ¼ÓÔØ¡£
DIÒÀÀµ×¢ÈëÊÇIOCµÄÒ»¸ö·½Ã棬ÊǸöͨ³£µÄ¸ÅÄËüÓжàÖÖ½âÊÍ¡£Õâ¸ÅÄîÊÇ˵Äã²»Óô²¼Ü¶ÔÏ󣬶øÖ»ÐèÒªÃèÊöËüÈçºÎ±»´´½¨¡£Äã²»ÔÚ´úÂëÀïÖ±½Ó×é×°ÄãµÄ×é¼þºÍ·þÎñ£¬µ«ÊÇÒªÔÚÅäÖÃÎļþÀïÃèÊö×é¼þÐèÒªÄÄЩ·þÎñ£¬Ö®ºóÒ»¸öIOCÈÝÆ÷¸¨Öú°ÑËûÃÇ×é×°ÆðÀ´¡£
IOCµÄ×¢È뷽ʽ£º1. ¹¹ÔìÆ÷ÒÀÀµ×¢È룻2. Setter·½·¨×¢Èë¡£
6. ÈçºÎ¸øspringÈÝÆ÷ÌṩÅäÖÃÔªÊý¾Ý
- XMLÅäÖÃÎļþ
- »ùÓÚ×¢½âµÄÅäÖÃ
- »ùÓÚJavaµÄÅäÖÃ@Configuration, @Bean
7. bean±êÇ©ÖеÄÊôÐÔ£º
- id
- name
- class
- init-method£ºBeanʵÀý»¯ºó»áÁ¢¿Ìµ÷Óõķ½·¨
- destory-method:Bean´ÓÈÝÆ÷ÒƳýºÍÏú»ÙÇ°£¬»áµ÷Óõķ½·¨
- factory-method:ÔËÐÐÎÒÃǵ÷ÓÃÒ»¸öÖ¸¶¨µÄ¾²Ì¬·½·¨£¬´Ó¶ø´úÌæ¹¹Ôì·½·¨À´´´½¨Ò»¸öÀàµÄʵÀý¡£
- scope£ºBeanµÄ×÷ÓÃÓò£¬°üÀ¨singleton(ĬÈÏ)£¬prototype(ÿ´Îµ÷Óö¼´´½¨Ò»¸öʵÀý), request,session, global-session£¨×¢ÒâspringÖеĵ¥Àýbean²»ÊÇḬ̈߳²È«µÄ£©
- autowired:×Ô¶¯×°Åä byName, byType, constructor, autodetect(Ê×ÏȲûÊÍʹÓÃconstructor×Ô¶¯×°Å䣬Èç¹ûûÓз¢ÏÖÓë¹¹ÔìÆ÷ÏàÆ¥ÅäµÄBeanʱ£¬Spring½«³¢ÊÔʹÓÃbyType×Ô¶¯×°Åä)
8. beans±êÇ©ÖÐÏà¹ØÊôÐÔ
default-init-method
default-destory-method
default-autowire£ºÄ¬ÈÏΪnone£¬Ó¦ÓÃÓÚSpringÅäÖÃÎļþÖеÄËùÓÐBean£¬×¢ÒâÕâÀï²»ÊÇÖ¸SpringÓ¦ÓÃÉÏÏÂÎÄ£¬ÒòΪÄã¿ÉÒÔ¶¨Òå¶à¸öÅäÖÃÎļþ
9. BeanµÄÉúÃüÖÜÆÚ
1) ´´½¨BeanµÄʵÀý(factory-method, autowireConstrutor)
2) ÊôÐÔ×¢Èë(autowireByName, autowireByType)
3) ³õʼ»¯Bean
3.1 ¼¤»îAware·½·¨£º£¨invokeAwaresMethods£©SpringÖÐÌṩÁËһЩAwareÏà¹Ø½Ó¿Ú£¬±ÈÈçBeanNameAware, BeanFactoryAware, ApplicationContextAwareµÈ£¬ÊµÏÖÕâЩAware½Ó¿ÚµÄbeanÔÚ±»³õʼ»¯Ö®ºó£¬¿ÉÒÔÈ¡µÃһЩÏà¶ÔÓ¦µÄ×ÊÔ´¡£
private void invokeAwareMethods(fina