ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Spring ֪ʶµãÌáÁ¶(Ò»)
2017-10-23 06:06:56 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:667´Î
Tags£ºSpring ֪ʶµã ÌáÁ¶

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µÄÈÝÆ÷¿ÉÒÔ·ÖΪÁ½ÖÖÀàÐÍ

  1. BeanFactory£º£¨org.springframework.beans.factory.BeanFactory½Ó¿Ú¶¨Ò壩ÊÇ×î¼ò´ðµÄÈÝÆ÷£¬ÌṩÁË»ù±¾µÄDIÖ§³Ö¡£×î³£ÓõÄBeanFactoryʵÏÖ¾ÍÊÇXmlBeanFactoryÀ࣬Ëü¸ù¾ÝXMLÎļþÖеĶ¨Òå¼ÓÔØbeans£¬¸ÃÈÝÆ÷´ÓXMLÎļþ¶ÁÈ¡ÅäÖÃÔªÊý¾Ý²¢ÓÃËüÈ¥´´½¨Ò»¸öÍêÈ«ÅäÖõÄϵͳ»òÓ¦Óá£
  2. 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
Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 6 ÏÂÒ»Ò³ βҳ 1/6/6
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºArrayList ³õʼ»¯ ¨C Java ÄÇЩÊ.. ÏÂһƪ£ºJava ·ºÐÍÒ»ÀÀ±Ê¼

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿