| Spring
¸ÅÊö
1. ʲôÊÇspring?
Spring ÊǸöJavaÆóÒµ¼¶Ó¦ÓõĿªÔ´¿ª·¢¿ò¼Ü¡£SpringÖ÷ÒªÓÃÀ´¿ª·¢JavaÓ¦Ó㬵«ÊÇÓÐЩÀ©Õ¹ÊÇÕë¶Ô¹¹½¨J2EEƽ̨µÄwebÓ¦Óá£Spring
¿ò¼ÜÄ¿±êÊǼò»¯JavaÆóÒµ¼¶Ó¦Óÿª·¢£¬²¢Í¨¹ýPOJOΪ»ù´¡µÄ±à³ÌÄ£ÐÍ´Ù½øÁ¼ºÃµÄ±à³Ìϰ¹ß¡£
2. ʹÓÃSpring¿ò¼ÜµÄºÃ´¦ÊÇʲô£¿
ÇáÁ¿£ºSpring ÊÇÇáÁ¿µÄ£¬»ù±¾µÄ°æ±¾´óÔ¼2MB¡£
¿ØÖÆ·´×ª£ºSpringͨ¹ý¿ØÖÆ·´×ªÊµÏÖÁËËÉÉ¢ñîºÏ£¬¶ÔÏóÃǸø³öËüÃǵÄÒÀÀµ£¬¶ø²»ÊÇ´´½¨»ò²éÕÒÒÀÀµµÄ¶ÔÏóÃÇ¡£
ÃæÏòÇÐÃæµÄ±à³Ì(AOP)£ºSpringÖ§³ÖÃæÏòÇÐÃæµÄ±à³Ì£¬²¢ÇÒ°ÑÓ¦ÓÃÒµÎñÂß¼ºÍϵͳ·þÎñ·Ö¿ª¡£
ÈÝÆ÷£ºSpring °üº¬²¢¹ÜÀíÓ¦ÓÃÖжÔÏóµÄÉúÃüÖÜÆÚºÍÅäÖá£
MVC¿ò¼Ü£ºSpringµÄWEB¿ò¼ÜÊǸö¾«ÐÄÉè¼ÆµÄ¿ò¼Ü£¬ÊÇWeb¿ò¼ÜµÄÒ»¸öºÜºÃµÄÌæ´úÆ·¡£
ÊÂÎñ¹ÜÀí£ºSpring Ìṩһ¸ö³ÖÐøµÄÊÂÎñ¹ÜÀí½Ó¿Ú£¬¿ÉÒÔÀ©Õ¹µ½ÉÏÖÁ±¾µØÊÂÎñÏÂÖÁÈ«¾ÖÊÂÎñ£¨JTA£©¡£
Òì³£´¦Àí£ºSpring Ìṩ·½±ãµÄAPI°Ñ¾ßÌå¼¼ÊõÏà¹ØµÄÒì³££¨±ÈÈçÓÉJDBC£¬Hibernate or
JDOÅ׳öµÄ£©×ª»¯ÎªÒ»ÖµÄunchecked Òì³£¡£
3. SpringÓÉÄÄЩģ¿é×é³É?
ÒÔÏÂÊÇSpring ¿ò¼ÜµÄ»ù±¾Ä£¿é£º
Core module
Bean module
Context module
Expression Language module
JDBC module
ORM module
OXM module
Java Messaging Service(JMS) module
Transaction module
Web module
Web-Servlet module
Web-Struts module
Web-Portlet module
4. ºËÐÄÈÝÆ÷£¨Ó¦ÓÃÉÏÏÂÎÄ) Ä£¿é¡£
ÕâÊÇ»ù±¾µÄSpringÄ£¿é£¬Ìṩspring ¿ò¼ÜµÄ»ù´¡¹¦ÄÜ£¬BeanFactory ÊÇ ÈκÎÒÔspringΪ»ù´¡µÄÓ¦ÓõĺËÐÄ¡£Spring
¿ò¼Ü½¨Á¢ÔÚ´ËÄ£¿éÖ®ÉÏ£¬ËüʹSpring³ÉΪһ¸öÈÝÆ÷¡£
5. BeanFactory ¨C BeanFactory ʵÏÖ¾ÙÀý¡£
Bean ¹¤³§Êǹ¤³§Ä£Ê½µÄÒ»¸öʵÏÖ£¬ÌṩÁË¿ØÖÆ·´×ª¹¦ÄÜ£¬ÓÃÀ´°ÑÓ¦ÓõÄÅäÖúÍÒÀÀµ´ÓÕýÕæµÄÓ¦ÓôúÂëÖзÖÀë¡£
×î³£ÓõÄBeanFactory ʵÏÖÊÇXmlBeanFactory Àà¡£
6. XMLBeanFactory
×î³£ÓõľÍÊÇorg.springframework.beans.factory.xml.XmlBeanFactory
£¬Ëü¸ù¾ÝXMLÎļþÖе͍Òå¼ÓÔØbeans¡£¸ÃÈÝÆ÷´ÓXML Îļþ¶ÁÈ¡ÅäÖÃÔªÊý¾Ý²¢ÓÃËüÈ¥´´½¨Ò»¸öÍêÈ«ÅäÖõÄϵͳ»òÓ¦Óá£
7. ½âÊÍAOPÄ£¿é
AOPÄ£¿éÓÃÓÚ·¢¸øÎÒÃǵÄSpringÓ¦ÓÃ×öÃæÏòÇÐÃæµÄ¿ª·¢£¬ ºÜ¶àÖ§³ÖÓÉAOPÁªÃËÌṩ£¬ÕâÑù¾ÍÈ·±£ÁËSpringºÍÆäËûAOP¿ò¼ÜµÄ¹²Í¨ÐÔ¡£Õâ¸öÄ£¿é½«ÔªÊý¾Ý±à³ÌÒýÈëSpring¡£
8. ½âÊÍJDBC³éÏóºÍDAOÄ£¿é¡£
ͨ¹ýʹÓÃJDBC³éÏóºÍDAOÄ£¿é£¬±£Ö¤Êý¾Ý¿â´úÂëµÄ¼ò½à£¬²¢ÄܱÜÃâÊý¾Ý¿â×ÊÔ´´íÎ󹨱յ¼ÖµÄÎÊÌ⣬ËüÔÚ¸÷ÖÖ²»Í¬µÄÊý¾Ý¿âµÄ´íÎóÐÅÏ¢Ö®ÉÏ£¬ÌṩÁËÒ»¸öͳһµÄÒì³£·ÃÎʲ㡣Ëü»¹ÀûÓÃSpringµÄAOP
Ä£¿é¸øSpringÓ¦ÓÃÖеĶÔÏóÌṩÊÂÎñ¹ÜÀí·þÎñ¡£
9. ½âÊͶÔÏó/¹ØÏµÓ³É伯³ÉÄ£¿é¡£
Spring ͨ¹ýÌṩORMÄ£¿é£¬Ö§³ÖÎÒÃÇÔÚÖ±½ÓJDBCÖ®ÉÏʹÓÃÒ»¸ö¶ÔÏó/¹ØÏµÓ³ÉäÓ³Éä(ORM)¹¤¾ß£¬Spring
Ö§³Ö¼¯³ÉÖ÷Á÷µÄORM¿ò¼Ü£¬ÈçHiberate,JDOºÍ iBATIS SQL Maps¡£SpringµÄÊÂÎñ¹ÜÀíͬÑùÖ§³ÖÒÔÉÏËùÓÐORM¿ò¼Ü¼°JDBC¡£
10. ½âÊÍWEB Ä£¿é¡£
SpringµÄWEBÄ£¿éÊǹ¹½¨ÔÚapplication context Ä£¿é»ù´¡Ö®ÉÏ£¬Ìṩһ¸öÊʺÏwebÓ¦ÓõÄÉÏÏÂÎÄ¡£Õâ¸öÄ£¿éÒ²°üÀ¨Ö§³Ö¶àÖÖÃæÏòwebµÄÈÎÎñ£¬Èç͸Ã÷µØ´¦Àí¶à¸öÎļþÉÏ´«ÇëÇóºÍ³ÌÐò¼¶ÇëÇó²ÎÊýµÄ°ó¶¨µ½ÄãµÄÒµÎñ¶ÔÏó¡£ËüÒ²ÓжÔJakarta
StrutsµÄÖ§³Ö¡£
12. SpringÅäÖÃÎļþ
SpringÅäÖÃÎļþÊǸöXML Îļþ£¬Õâ¸öÎļþ°üº¬ÁËÀàÐÅÏ¢£¬ÃèÊöÁËÈçºÎÅäÖÃËüÃÇ£¬ÒÔ¼°ÈçºÎÏ໥µ÷Óá£
13. ʲôÊÇSpring IOC ÈÝÆ÷£¿
Spring IOC ¸ºÔð´´½¨¶ÔÏ󣬹ÜÀí¶ÔÏó£¨Í¨¹ýÒÀÀµ×¢È루DI£©£¬×°Åä¶ÔÏó£¬ÅäÖöÔÏ󣬲¢ÇÒ¹ÜÀíÕâЩ¶ÔÏóµÄÕû¸öÉúÃüÖÜÆÚ¡£
14. IOCµÄÓŵãÊÇʲô£¿
IOC »ò ÒÀÀµ×¢Èë°ÑÓ¦ÓõĴúÂëÁ¿½µµ½×îµÍ¡£ËüʹӦÓÃÈÝÒײâÊÔ£¬µ¥Ôª²âÊÔ²»ÔÙÐèÒªµ¥ÀýºÍJNDI²éÕÒ»úÖÆ¡£×îСµÄ´ú¼ÛºÍ×îСµÄÇÖÈëÐÔʹËÉÉ¢ñîºÏµÃÒÔʵÏÖ¡£IOCÈÝÆ÷Ö§³Ö¼ÓÔØ·þÎñʱµÄ¶öººÊ½³õʼ»¯ºÍÀÁ¼ÓÔØ¡£
15. ApplicationContextͨ³£µÄʵÏÖÊÇʲô?
FileSystemXmlApplicationContext £º´ËÈÝÆ÷´ÓÒ»¸öXMLÎļþÖмÓÔØbeansµÄ¶¨Ò壬XML
Bean ÅäÖÃÎļþµÄȫ·¾¶Ãû±ØÐëÌṩ¸øËüµÄ¹¹Ô캯Êý¡£
ClassPathXmlApplicationContext£º´ËÈÝÆ÷Ò²´ÓÒ»¸öXMLÎļþÖмÓÔØbeansµÄ¶¨Ò壬ÕâÀÄãÐèÒªÕýÈ·ÉèÖÃclasspathÒòΪÕâ¸öÈÝÆ÷½«ÔÚclasspathÀïÕÒbeanÅäÖá£
WebXmlApplicationContext£º´ËÈÝÆ÷¼ÓÔØÒ»¸öXMLÎļþ£¬´ËÎļþ¶¨ÒåÁËÒ»¸öWEBÓ¦ÓõÄËùÓÐbean¡£
16. Bean ¹¤³§ºÍ Application contexts ÓÐÊ²Ã´Çø±ð£¿
Application contextsÌṩһÖÖ·½·¨´¦ÀíÎı¾ÏûÏ¢£¬Ò»¸öͨ³£µÄ×ö·¨ÊǼÓÔØÎļþ×ÊÔ´£¨±ÈÈç¾µÏñ£©£¬ËüÃÇ¿ÉÒÔÏò×¢²áΪ¼àÌýÆ÷µÄbean·¢²¼Ê¼þ¡£ÁíÍ⣬ÔÚÈÝÆ÷»òÈÝÆ÷ÄڵĶÔÏóÉÏÖ´ÐеÄÄÇЩ²»µÃ²»ÓÉbean¹¤³§ÒÔ³ÌÐò»¯·½Ê½´¦ÀíµÄ²Ù×÷£¬¿ÉÒÔÔÚApplication
contextsÖÐÒÔÉùÃ÷µÄ·½Ê½´¦Àí¡£Application contextsʵÏÖÁËMessageSource½Ó¿Ú£¬¸Ã½Ó¿ÚµÄʵÏÖÒԿɲå°ÎµÄ·½Ê½Ìṩ»ñÈ¡±¾µØ»¯ÏûÏ¢µÄ·½·¨¡£
17. Ò»¸öSpringµÄÓ¦Óÿ´ÆðÀ´Ïóʲô£¿
Ò»¸ö¶¨ÒåÁËһЩ¹¦ÄܵĽӿڡ£
ÕâʵÏÖ°üÀ¨ÊôÐÔ£¬ËüµÄSetter £¬ getter ·½·¨ºÍº¯ÊýµÈ¡£
Spring AOP¡£
Spring µÄXML ÅäÖÃÎļþ¡£
ʹÓÃÒÔÉϹ¦ÄܵĿͻ§¶Ë³ÌÐò¡£
ÒÀÀµ×¢Èë
18. ʲôÊÇSpringµÄÒÀÀµ×¢È룿
ÒÀÀµ×¢È룬ÊÇIOCµÄÒ»¸ö·½Ã棬ÊǸöͨ³£µÄ¸ÅÄËüÓжàÖÖ½âÊÍ¡£Õâ¸ÅÄîÊÇ˵Äã²»Óô´½¨¶ÔÏ󣬶øÖ»ÐèÒªÃèÊöËüÈçºÎ±»´´½¨¡£Äã²»ÔÚ´úÂëÀïÖ±½Ó×é×°ÄãµÄ×é¼þºÍ·þÎñ£¬µ«ÊÇÒªÔÚÅäÖÃÎļþÀïÃèÊöÄÄЩ×é¼þÐèÒªÄÄЩ·þÎñ£¬Ö®ºóÒ»¸öÈÝÆ÷£¨IOCÈÝÆ÷£©¸ºÔð°ÑËûÃÇ×é×°ÆðÀ´¡£
19. ÓÐÄÄЩ²»Í¬ÀàÐ͵ÄIOC£¨ÒÀÀµ×¢È룩·½Ê½£¿
¹¹ÔìÆ÷ÒÀÀµ×¢È룺¹¹ÔìÆ÷ÒÀÀµ×¢Èëͨ¹ýÈÝÆ÷´¥·¢Ò»¸öÀàµÄ¹¹ÔìÆ÷À´ÊµÏֵ쬏ÃÀàÓÐһϵÁвÎÊý£¬Ã¿¸ö²ÎÊý´ú±íÒ»¸ö¶ÔÆäËûÀàµÄÒÀÀµ¡£
Setter·½·¨×¢È룺Setter·½·¨×¢ÈëÊÇÈÝÆ÷ͨ¹ýµ÷ÓÃÎ޲ι¹ÔìÆ÷»òÎÞ²Îstatic¹¤³§ ·½·¨ÊµÀý»¯beanÖ®ºó£¬µ÷ÓøÃbeanµÄsetter·½·¨£¬¼´ÊµÏÖÁË»ùÓÚsetterµÄÒÀÀµ×¢Èë¡£
20. ÄÄÖÖÒÀÀµ×¢È뷽ʽÄ㽨ÒéʹÓ㬹¹ÔìÆ÷×¢È룬»¹ÊÇ Setter·½·¨×¢È룿
ÄãÁ½ÖÖÒÀÀµ·½Ê½¶¼¿ÉÒÔʹÓ㬹¹ÔìÆ÷×¢ÈëºÍSetter·½·¨×¢Èë¡£×îºÃµÄ½â¾ö·½°¸ÊÇÓù¹ÔìÆ÷²ÎÊýʵÏÖÇ¿ÖÆÒÀÀµ£¬setter·½·¨ÊµÏÖ¿ÉÑ¡ÒÀÀµ¡£
Spring Beans
21.ʲôÊÇSpring beans?
Spring beans ÊÇÄÇЩÐγÉSpringÓ¦ÓõÄÖ÷¸ÉµÄjava¶ÔÏó¡£ËüÃDZ»Spring IOCÈÝÆ÷³õʼ»¯£¬×°Å䣬ºÍ¹ÜÀí¡£ÕâЩbeansͨ¹ýÈÝÆ÷ÖÐÅäÖõÄÔªÊý¾Ý´´½¨¡£±ÈÈ磬ÒÔXMLÎļþÖÐ<bean/>
µÄÐÎʽ¶¨Òå¡£
Spring ¿ò¼Ü¶¨ÒåµÄbeans¶¼Êǵ¥¼þbeans¡£ÔÚbean tagÖÐÓиöÊôÐÔ¡±singleton¡±£¬Èç¹ûËü±»¸³ÎªTRUE£¬bean
¾ÍÊǵ¥¼þ£¬·ñÔò¾ÍÊÇÒ»¸ö prototype bean¡£Ä¬ÈÏÊÇTRUE£¬ËùÒÔËùÓÐÔÚSpring¿ò¼ÜÖеÄbeans
ȱʡ¶¼Êǵ¥¼þ¡£
22. Ò»¸ö Spring Bean ¶¨Òå °üº¬Ê²Ã´£¿
Ò»¸öSpring Bean µÄ¶¨Òå°üº¬ÈÝÆ÷±ØÖªµÄËùÓÐÅäÖÃÔªÊý¾Ý£¬°üÀ¨ÈçºÎ´´½¨Ò»¸öbean£¬ËüµÄÉúÃüÖÜÆÚÏêÇé¼°ËüµÄÒÀÀµ¡£
23. ÈçºÎ¸øSpring ÈÝÆ÷ÌṩÅäÖÃÔªÊý¾Ý?
ÕâÀïÓÐÈýÖÖÖØÒªµÄ·½·¨¸øSpring ÈÝÆ÷ÌṩÅäÖÃÔªÊý¾Ý¡£
XMLÅäÖÃÎļþ¡£
»ùÓÚ×¢½âµÄÅäÖá£
»ùÓÚjavaµÄÅäÖá£
24. ÄãÔõÑù¶¨ÒåÀàµÄ×÷ÓÃÓò?
µ±¶¨ÒåÒ»¸ö<bean> ÔÚSpringÀÎÒÃÇ»¹ÄܸøÕâ¸öbeanÉùÃ÷Ò»¸ö×÷ÓÃÓò¡£Ëü¿ÉÒÔͨ¹ýbean
¶¨ÒåÖеÄscopeÊôÐÔÀ´¶¨Òå¡£È磬µ±SpringÒªÔÚÐèÒªµÄʱºòÿ´ÎÉú²úÒ»¸öеÄbeanʵÀý£¬beanµÄscopeÊôÐÔ±»Ö¸¶¨Îªprototype¡£ÁíÒ»·½Ã棬һ¸öbeanÿ´ÎʹÓõÄʱºò±ØÐë·µ»ØÍ¬Ò»¸öʵÀý£¬Õâ¸öbeanµÄscope
ÊôÐÔ ±ØÐëÉèΪ singleton¡£
25. ½âÊÍSpringÖ§³ÖµÄ¼¸ÖÖbeanµÄ×÷ÓÃÓò¡£
Spring¿ò¼ÜÖ§³ÖÒÔÏÂÎåÖÖbeanµÄ×÷ÓÃÓò£º
singleton : beanÔÚÿ¸öSpring ioc ÈÝÆ÷ÖÐÖ»ÓÐÒ»¸öʵÀý¡£
prototype£ºÒ»¸öbeanµÄ¶¨Òå¿ÉÒÔÓжà¸öʵÀý¡£
request£ºÃ¿´ÎhttpÇëÇ󶼻ᴴ½¨Ò»¸öbean£¬¸Ã×÷ÓÃÓò½öÔÚ»ùÓÚwebµÄSpring ApplicationContextÇéÐÎÏÂÓÐЧ¡£
session£ºÔÚÒ»¸öHTTP SessionÖУ¬Ò»¸öbean¶¨Òå¶ÔÓ¦Ò»¸öʵÀý¡£¸Ã×÷ÓÃÓò½öÔÚ»ùÓÚwebµÄSpring
ApplicationContextÇéÐÎÏÂÓÐЧ¡£
global-session£ºÔÚÒ»¸öÈ«¾ÖµÄHTTP SessionÖУ¬Ò»¸öbean¶¨Òå¶ÔÓ¦Ò»¸öʵÀý¡£¸Ã×÷ÓÃÓò½öÔÚ»ùÓÚwebµÄSpring
ApplicationContextÇéÐÎÏÂÓÐЧ¡£
ȱʡµÄSpring bean µÄ×÷ÓÃÓòÊÇSingleton.
26. Spring¿ò¼ÜÖеĵ¥ÀýbeanÊÇḬ̈߳²È«µÄÂð?
²»£¬Spring¿ò¼ÜÖеĵ¥Àýbean²»ÊÇḬ̈߳²È«µÄ¡£
27. ½âÊÍSpring¿ò¼ÜÖÐbeanµÄÉúÃüÖÜÆÚ¡£
SpringÈÝÆ÷ ´ÓXML ÎļþÖжÁÈ¡beanµÄ¶¨Ò壬²¢ÊµÀý»¯bean¡£
Spring¸ù¾ÝbeanµÄ¶¨ÒåÌî³äËùÓеÄÊôÐÔ¡£
Èç¹ûbeanʵÏÖÁËBeanNameAware ½Ó¿Ú£¬Spring ´«µÝbean µÄID µ½ setBeanName·½·¨¡£
Èç¹ûBean ʵÏÖÁË BeanFactoryAware ½Ó¿Ú£¬ Spring´«µÝbeanfactory
¸øsetBeanFactory ·½·¨¡£
Èç¹ûÓÐÈκÎÓëbeanÏà¹ØÁªµÄBeanPostProcessors£¬Spring»áÔÚpostProcesserBeforeInitialization()·½·¨ÄÚµ÷ÓÃËüÃÇ¡£
Èç¹ûbeanʵÏÖIntializingBeanÁË£¬µ÷ÓÃËüµÄafterPropertySet·½·¨£¬Èç¹ûbeanÉùÃ÷Á˳õʼ»¯·½·¨£¬µ÷Óô˳õʼ»¯·½·¨¡£
Èç¹ûÓÐBeanPostProcessors ºÍbean ¹ØÁª£¬ÕâЩbeanµÄpostProcessAfterInitialization()
·½·¨½«±»µ÷Óá£
Èç¹ûbeanʵÏÖÁË DisposableBean£¬Ëü½«µ÷ÓÃdestroy()·½·¨¡£
28. ÄÄЩÊÇÖØÒªµÄbeanÉúÃüÖÜÆÚ·½·¨£¿ ÄãÄÜÖØÔØËüÃÇÂð£¿
ÓÐÁ½¸öÖØÒªµÄbean ÉúÃüÖÜÆÚ·½·¨£¬µÚÒ»¸öÊÇsetup £¬ ËüÊÇÔÚÈÝÆ÷¼ÓÔØbeanµÄʱºò±»µ÷Óᣵڶþ¸ö·½·¨ÊÇ
teardown ËüÊÇÔÚÈÝÆ÷Ð¶ÔØÀàµÄʱºò±»µ÷Óá£
The bean ±êÇ©ÓÐÁ½¸öÖØÒªµÄÊôÐÔ£¨init-methodºÍdestroy-method£©¡£ÓÃËüÃÇÄã¿ÉÒÔ×Ô¼º¶¨ÖƳõʼ»¯ºÍ×¢Ïú·½·¨¡£ËüÃÇÒ²ÓÐÏàÓ¦µÄ×¢½â£¨@PostConstructºÍ@PreDestroy£©¡£
29. ʲôÊÇSpringµÄÄÚ²¿bean£¿
µ±Ò»¸öbean½ö±»ÓÃ×÷ÁíÒ»¸öbeanµÄÊôÐÔʱ£¬ËüÄܱ»ÉùÃ÷Ϊһ¸öÄÚ²¿bean£¬ÎªÁ˶¨Òåinner bean£¬ÔÚSpring
µÄ »ùÓÚXMLµÄ ÅäÖÃÔªÊý¾ÝÖУ¬¿ÉÒÔÔÚ <property/>»ò <constructor-arg/>
ÔªËØÄÚʹÓÃ<bean/> ÔªËØ£¬ÄÚ²¿beanͨ³£ÊÇÄäÃûµÄ£¬ËüÃǵÄScopeÒ»°ãÊÇprototype¡£
30. ÔÚ SpringÖÐÈçºÎ×¢ÈëÒ»¸öjava¼¯ºÏ£¿
SpringÌṩÒÔϼ¸ÖÖ¼¯ºÏµÄÅäÖÃÔªËØ£º
<list>ÀàÐÍÓÃÓÚ×¢ÈëÒ»ÁÐÖµ£¬ÔÊÐíÓÐÏàͬµÄÖµ¡£
<set> ÀàÐÍÓÃÓÚ×¢ÈëÒ»×éÖµ£¬²»ÔÊÐíÓÐÏàͬµÄÖµ¡£
<map> ÀàÐÍÓÃÓÚ×¢ÈëÒ»×é¼üÖµ¶Ô£¬¼üºÍÖµ¶¼¿ÉÒÔΪÈÎÒâÀàÐÍ¡£
<props>ÀàÐÍÓÃÓÚ×¢ÈëÒ»×é¼üÖµ¶Ô£¬¼üºÍÖµ¶¼Ö»ÄÜΪStringÀàÐÍ¡£
31. ʲôÊÇbean×°Åä?
×°Å䣬»òbean ×°ÅäÊÇÖ¸ÔÚSpring ÈÝÆ÷ÖаÑbean×é×°µ½Ò»Æð£¬Ç°ÌáÊÇÈÝÆ÷ÐèÒªÖªµÀbeanµÄÒÀÀµ¹ØÏµ£¬ÈçºÎͨ¹ýÒÀÀµ×¢ÈëÀ´°ÑËüÃÇ×°Åäµ½Ò»Æð¡£
32. ʲôÊÇbeanµÄ×Ô¶¯×°Å䣿
Spring ÈÝÆ÷Äܹ»×Ô¶¯×°ÅäÏ໥ºÏ×÷µÄbean£¬ÕâÒâζ×ÅÈÝÆ÷²»ÐèÒª<constructor-arg>ºÍ<property>ÅäÖã¬ÄÜͨ¹ýBean¹¤³§×Ô¶¯´¦ÀíbeanÖ®¼äµÄÐ×÷¡£
33. ½âÊͲ»Í¬·½Ê½µÄ×Ô¶¯×°Åä ¡£
ÓÐÎåÖÖ×Ô¶¯×°ÅäµÄ·½Ê½£¬¿ÉÒÔÓÃÀ´Ö¸µ¼SpringÈÝÆ÷ÓÃ×Ô¶¯×°Å䷽ʽÀ´½øÐÐÒÀÀµ×¢Èë¡£
no£ºÄ¬Èϵķ½Ê½ÊDz»½øÐÐ×Ô¶¯×°Å䣬ͨ¹ýÏÔʽÉèÖÃref ÊôÐÔÀ´½øÐÐ×°Åä¡£
byName£ºÍ¨¹ý²ÎÊýÃû ×Ô¶¯×°Å䣬SpringÈÝÆ÷ÔÚÅäÖÃÎļþÖз¢ÏÖbeanµÄautowireÊôÐÔ±»ÉèÖóÉbyname£¬Ö®ºóÈÝÆ÷ÊÔͼƥÅä¡¢×°ÅäºÍ¸ÃbeanµÄÊôÐÔ¾ßÓÐÏàͬÃû×ÖµÄbean¡£
byType:£ºÍ¨¹ý²ÎÊýÀàÐÍ×Ô¶¯×°Å䣬SpringÈÝÆ÷ÔÚÅäÖÃÎļþÖз¢ÏÖbeanµÄautowireÊôÐÔ±»ÉèÖóÉbyType£¬Ö®ºóÈÝÆ÷ÊÔͼƥÅä¡¢×°ÅäºÍ¸ÃbeanµÄÊôÐÔ¾ßÓÐÏàͬÀàÐ͵Äbean¡£Èç¹ûÓжà¸öbean·ûºÏÌõ¼þ£¬ÔòÅ׳ö´íÎó¡£
constructor£ºÕâ¸ö·½Ê½ÀàËÆÓÚbyType£¬ µ«ÊÇÒªÌṩ¸ø¹¹ÔìÆ÷²ÎÊý£¬Èç¹ûûÓÐÈ·¶¨µÄ´ø²ÎÊýµÄ¹¹ÔìÆ÷²ÎÊýÀàÐÍ£¬½«»áÅ׳öÒì³£¡£
autodetect£ºÊ×Ïȳ¢ÊÔʹÓÃconstructorÀ´×Ô¶¯×°Å䣬Èç¹ûÎÞ·¨¹¤×÷£¬ÔòʹÓÃbyType·½Ê½¡£
34.×Ô¶¯×°ÅäÓÐÄÄЩ¾ÖÏÞÐÔ ?
×Ô¶¯×°ÅäµÄ¾ÖÏÞÐÔÊÇ£º
ÖØÐ´£º ÄãÈÔÐèÓà <constructor-arg>ºÍ <property>
ÅäÖÃÀ´¶¨ÒåÒÀÀµ£¬Òâζ×Å×ÜÒªÖØÐ´×Ô¶¯×°Åä¡£
»ù±¾Êý¾ÝÀàÐÍ£ºÄã²»ÄÜ×Ô¶¯×°Åä¼òµ¥µÄÊôÐÔ£¬Èç»ù±¾Êý¾ÝÀàÐÍ£¬String×Ö·û´®£¬ºÍÀà¡£
Ä£ºýÌØÐÔ£º×Ô¶¯×°Åä²»ÈçÏÔʽװÅ侫ȷ£¬Èç¹ûÓпÉÄÜ£¬½¨ÒéʹÓÃÏÔʽװÅä¡£
35. Äã¿ÉÒÔÔÚSpringÖÐ×¢ÈëÒ»¸önull ºÍÒ»¸ö¿Õ×Ö·û´®Âð£¿
¿ÉÒÔ¡£
Spring×¢½â
36. ʲôÊÇ»ùÓÚJavaµÄSpring×¢½âÅäÖÃ? ¸øÒ»Ð©×¢½âµÄÀý×Ó.
»ùÓÚJavaµÄÅäÖã¬ÔÊÐíÄãÔÚÉÙÁ¿µÄJava×¢½âµÄ°ïÖúÏ£¬½øÐÐÄãµÄ´ó²¿·ÖSpringÅäÖöø·Çͨ¹ýXMLÎļþ¡£
ÒÔ@Configuration ×¢½âΪÀý£¬ËüÓÃÀ´±ê¼ÇÀà¿ÉÒÔµ±×öÒ»¸öbeanµÄ¶¨Ò壬±»Spring IOCÈÝÆ÷ʹÓá£ÁíÒ»¸öÀý×ÓÊÇ@Bean×¢½â£¬Ëü±íʾ´Ë·½·¨½«Òª·µ»ØÒ»¸ö¶ÔÏó£¬×÷Ϊһ¸öbean×¢²á½øSpringÓ¦ÓÃÉÏÏÂÎÄ¡£
37. ʲôÊÇ»ùÓÚ×¢½âµÄÈÝÆ÷ÅäÖÃ?
Ïà¶ÔÓÚXMLÎļþ£¬×¢½âÐ͵ÄÅäÖÃÒÀÀµÓÚͨ¹ý×Ö½ÚÂëÔªÊý¾Ý×°Åä×é¼þ£¬¶ø·Ç¼âÀ¨ºÅµÄÉùÃ÷¡£
¿ª·¢Õßͨ¹ýÔÚÏàÓ¦µÄÀ࣬·½·¨»òÊôÐÔÉÏʹÓÃ×¢½âµÄ·½Ê½£¬Ö±½Ó×é¼þÀàÖнøÐÐÅäÖ㬶ø²»ÊÇʹÓÃxml±íÊöbeanµÄ×°Åä¹ØÏµ¡£
38. ÔõÑù¿ªÆô×¢½â×°Å䣿
×¢½â×°ÅäÔÚĬÈÏÇé¿öÏÂÊDz»¿ªÆôµÄ£¬ÎªÁËʹÓÃ×¢½â×°Å䣬ÎÒÃDZØÐëÔÚSpringÅäÖÃÎļþÖÐÅäÖà <context:annotation-config/>ÔªËØ¡£
39. @Required ×¢½â
Õâ¸ö×¢½â±íÃ÷beanµÄÊôÐÔ±ØÐëÔÚÅäÖõÄʱºòÉèÖã¬Í¨¹ýÒ»¸öbean¶¨ÒåµÄÏÔʽµÄÊôÐÔÖµ»òͨ¹ý×Ô¶¯×°Å䣬Èô@Required×¢½âµÄbeanÊôÐÔδ±»ÉèÖã¬ÈÝÆ÷½«Å׳öBeanInitializationException¡£
40. @Autowired ×¢½â
@Autowired ×¢½âÌṩÁ˸üϸÁ£¶ÈµÄ¿ØÖÆ£¬°üÀ¨Ôںδ¦ÒÔ¼°ÈçºÎÍê³É×Ô¶¯×°Åä¡£ËüµÄÓ÷¨ºÍ@RequiredÒ»Ñù£¬ÐÞÊÎsetter·½·¨¡¢¹¹ÔìÆ÷¡¢ÊôÐÔ»òÕß¾ßÓÐÈÎÒâÃû³ÆºÍ/»ò¶à¸ö²ÎÊýµÄPN·½·¨¡£
41. @Qualifier ×¢½â
µ±Óжà¸öÏàͬÀàÐ͵ÄbeanÈ´Ö»ÓÐÒ»¸öÐèÒª×Ô¶¯×°Åäʱ£¬½«@Qualifier ×¢½âºÍ@Autowire
×¢½â½áºÏʹÓÃÒÔÏû³ýÕâÖÖ»ìÏý£¬Ö¸¶¨ÐèҪװÅäµÄÈ·ÇеÄbean¡£
SpringÊý¾Ý·ÃÎÊ
42.ÔÚSpring¿ò¼ÜÖÐÈçºÎ¸üÓÐЧµØÊ¹ÓÃJDBC?
ʹÓÃSpringJDBC ¿ò¼Ü£¬×ÊÔ´¹ÜÀíºÍ´íÎó´¦ÀíµÄ´ú¼Û¶¼»á±»¼õÇá¡£ËùÒÔ¿ª·¢ÕßÖ»Ðèдstatements
ºÍ queries´ÓÊý¾Ý´æÈ¡Êý¾Ý£¬JDBCÒ²¿ÉÒÔÔÚSpring¿ò¼ÜÌṩµÄÄ£°åÀàµÄ°ïÖúϸüÓÐЧµØ±»Ê¹Óã¬Õâ¸öÄ£°å½ÐJdbcTemplate
£¨Àý×Ó¼ûÕâÀïhere£©
43. JdbcTemplate
JdbcTemplate ÀàÌṩÁ˺ܶà±ãÀûµÄ·½·¨½â¾öÖîÈç°ÑÊý¾Ý¿âÊý¾Ýת±ä³É»ù±¾Êý¾ÝÀàÐÍ»ò¶ÔÏó£¬Ö´ÐÐдºÃµÄ»ò¿Éµ÷ÓõÄÊý¾Ý¿â²Ù×÷Óï¾ä£¬Ìṩ×Ô¶¨ÒåµÄÊý¾Ý´íÎó´¦Àí¡£
44. Spring¶ÔDAOµÄÖ§³Ö
Spring¶ÔÊý¾Ý·ÃÎʶÔÏó£¨DAO£©µÄÖ§³ÖÖ¼ÔÚ¼ò»¯ËüºÍÊý¾Ý·ÃÎʼ¼ÊõÈçJDBC£¬Hibernate or
JDO ½áºÏʹÓá£ÕâʹÎÒÃÇ¿ÉÒÔ·½±ãÇл»³Ö¾Ã²ã¡£±àÂëʱҲ²»Óõ£ÐĻᲶ»ñÿÖÖ¼¼ÊõÌØÓеÄÒì³£¡£
45. ʹÓÃSpringͨ¹ýʲô·½Ê½·ÃÎÊHibernate?
ÔÚSpringÖÐÓÐÁ½ÖÖ·½Ê½·ÃÎÊHibernate£º
¿ØÖÆ·´×ª Hibernate TemplateºÍ Callback¡£
¼Ì³Ð HibernateDAOSupportÌṩһ¸öAOP À¹½ØÆ÷¡£
46. SpringÖ§³ÖµÄORM
SpringÖ§³ÖÒÔÏÂORM£º
Hibernate
iBatis
JPA (Java Persistence API)
TopLink
JDO (Java Data Objects)
OJB
47.ÈçºÎͨ¹ýHibernateDaoSupport½«SpringºÍHibernate½áºÏÆðÀ´£¿
ÓÃSpringµÄ SessionFactory µ÷Óà LocalSessionFactory¡£¼¯³É¹ý³Ì·ÖÈý²½£º
ÅäÖÃthe Hibernate SessionFactory¡£
¼Ì³ÐHibernateDaoSupportʵÏÖÒ»¸öDAO¡£
ÔÚAOPÖ§³ÖµÄÊÂÎñÖÐ×°Åä¡£
48. SpringÖ§³ÖµÄÊÂÎñ¹ÜÀíÀàÐÍ
SpringÖ§³ÖÁ½ÖÖÀàÐ͵ÄÊÂÎñ¹ÜÀí£º
±à³ÌʽÊÂÎñ¹ÜÀí£ºÕâÒâζÄãͨ¹ý±à³ÌµÄ·½Ê½¹ÜÀíÊÂÎñ£¬¸øÄã´øÀ´¼«´óµÄÁé»îÐÔ£¬µ«ÊÇÄÑά»¤¡£
ÉùÃ÷ʽÊÂÎñ¹ÜÀí£ºÕâÒâζ×ÅÄã¿ÉÒÔ½«ÒµÎñ´úÂëºÍÊÂÎñ¹ÜÀí·ÖÀ룬ÄãÖ»ÐèÓÃ×¢½âºÍXMLÅäÖÃÀ´¹ÜÀíÊÂÎñ¡£
49. Spring¿ò¼ÜµÄÊÂÎñ¹ÜÀíÓÐÄÄЩÓŵ㣿
ËüΪ²»Í¬µÄÊÂÎñAPI Èç JTA£¬JDBC£¬Hibernate£¬JPA ºÍJDO£¬Ìṩһ¸ö²»±äµÄ±à³Ìģʽ¡£
ËüΪ±à³ÌʽÊÂÎñ¹ÜÀíÌṩÁËÒ»Ì×¼òµ¥µÄAPI¶ø²»ÊÇһЩ¸´ÔÓµÄÊÂÎñAPIÈç
ËüÖ§³ÖÉùÃ÷ʽÊÂÎñ¹ÜÀí¡£
ËüºÍSpring¸÷ÖÖÊý¾Ý·ÃÎʳéÏó²ãºÜºÃµÃ¼¯³É¡£
50. Äã¸üÇãÏòÓÃÄÇÖÖÊÂÎñ¹ÜÀíÀàÐÍ£¿
´ó¶àÊýSpring¿ò¼ÜµÄÓû§Ñ¡ÔñÉùÃ÷ʽÊÂÎñ¹ÜÀí£¬ÒòΪËü¶ÔÓ¦ÓôúÂëµÄÓ°Ïì×îС£¬Òò´Ë¸ü·ûºÏÒ»¸öÎÞÇÖÈëµÄÇáÁ¿¼¶ÈÝÆ÷µÄ˼Ïë¡£ÉùÃ÷ʽÊÂÎñ¹ÜÀíÒªÓÅÓÚ±à³ÌʽÊÂÎñ¹ÜÀí£¬ËäÈ»±È±à³ÌʽÊÂÎñ¹ÜÀí£¨ÕâÖÖ·½Ê½ÔÊÐíÄãͨ¹ý´úÂë¿ØÖÆÊÂÎñ£©ÉÙÁËÒ»µãÁé»îÐÔ¡£
SpringÃæÏòÇÐÃæ±à³Ì£¨AOP£©
51. ½âÊÍAOP
ÃæÏòÇÐÃæµÄ±à³Ì£¬»òAOP£¬ ÊÇÒ»ÖÖ±à³Ì¼¼Êõ£¬ÔÊÐí³ÌÐòÄ£¿é»¯ºáÏòÇÐ¸î¹Ø×¢µã£¬»òºáÇеäÐ͵ÄÔðÈλ®·Ö£¬ÈçÈÕÖ¾ºÍÊÂÎñ¹ÜÀí¡£
52. Aspect ÇÐÃæ
AOPºËÐľÍÊÇÇÐÃæ£¬Ëü½«¶à¸öÀàµÄͨÓÃÐÐΪ·â×°³É¿ÉÖØÓõÄÄ£¿é£¬¸ÃÄ£¿éº¬ÓÐÒ»×éAPIÌṩºáÇй¦ÄÜ¡£±ÈÈ磬һ¸öÈÕ־ģ¿é¿ÉÒÔ±»³Æ×÷ÈÕÖ¾µÄAOPÇÐÃæ¡£¸ù¾ÝÐèÇóµÄ²»Í¬£¬Ò»¸öÓ¦ÓóÌÐò¿ÉÒÔÓÐÈô¸ÉÇÐÃæ¡£ÔÚSpring
AOPÖУ¬ÇÐÃæÍ¨¹ý´øÓÐ@Aspect×¢½âµÄÀàʵÏÖ¡£
52. ÔÚSpring AOP ÖУ¬¹Ø×¢µãºÍºáÇйØ×¢µÄÇø±ðÊÇʲô£¿
¹Ø×¢µãÊÇÓ¦ÓÃÖÐÒ»¸öÄ£¿éµÄÐÐΪ£¬Ò»¸ö¹Ø×¢µã¿ÉÄܻᱻ¶¨Òå³ÉÒ»¸öÎÒÃÇÏëʵÏÖµÄÒ»¸ö¹¦ÄÜ¡£
ºáÇйØ×¢µãÊÇÒ»¸ö¹Ø×¢µã£¬´Ë¹Ø×¢µãÊÇÕû¸öÓ¦Óö¼»áʹÓõŦÄÜ£¬²¢Ó°ÏìÕû¸öÓ¦Ó㬱ÈÈçÈÕÖ¾£¬°²È«ºÍÊý¾Ý´«Ê䣬¼¸ºõÓ¦ÓõÄÿ¸öÄ£¿é¶¼ÐèÒªµÄ¹¦ÄÜ¡£Òò´ËÕâЩ¶¼ÊôÓÚºáÇйØ×¢µã¡£
54. Á¬½Óµã
Á¬½Óµã´ú±íÒ»¸öÓ¦ÓóÌÐòµÄij¸öλÖã¬ÔÚÕâ¸öλÖÃÎÒÃÇ¿ÉÒÔ²åÈëÒ»¸öAOPÇÐÃæ£¬Ëüʵ¼ÊÉÏÊǸöÓ¦ÓóÌÐòÖ´ÐÐSpring
AOPµÄλÖá£
55. ֪ͨ
֪ͨÊǸöÔÚ·½·¨Ö´ÐÐǰ»òÖ´ÐкóÒª×öµÄ¶¯×÷£¬Êµ¼ÊÉÏÊdzÌÐòÖ´ÐÐʱҪͨ¹ýSpringAOP¿ò¼Ü´¥·¢µÄ´úÂë¶Î¡£
SpringÇÐÃæ¿ÉÒÔÓ¦ÓÃÎåÖÖÀàÐ͵Ä֪ͨ£º
before£ºÇ°ÖÃ֪ͨ£¬ÔÚÒ»¸ö·½·¨Ö´ÐÐǰ±»µ÷Óá£
after: ÔÚ·½·¨Ö´ÐÐÖ®ºóµ÷ÓõÄ֪ͨ£¬ÎÞÂÛ·½·¨Ö´ÐÐÊÇ·ñ³É¹¦¡£
after-returning: ½öµ±·½·¨³É¹¦Íê³ÉºóÖ´ÐеÄ֪ͨ¡£
after-throwing: ÔÚ·½·¨Å׳öÒì³£Í˳öʱִÐеÄ֪ͨ¡£
around: ÔÚ·½·¨Ö´ÐÐ֮ǰºÍÖ®ºóµ÷ÓõÄ֪ͨ¡£
56. Çеã
ÇÐÈëµãÊÇÒ»¸ö»òÒ»×éÁ¬½Óµã£¬Í¨Öª½«ÔÚÕâЩλÖÃÖ´ÐС£¿ÉÒÔͨ¹ý±í´ïʽ»òÆ¥ÅäµÄ·½Ê½Ö¸Ã÷ÇÐÈëµã¡£
57. ʲôÊÇÒýÈë?
ÒýÈëÔÊÐíÎÒÃÇÔÚÒÑ´æÔÚµÄÀàÖÐÔö¼ÓÐµķ½·¨ºÍÊôÐÔ¡£
58. ʲôÊÇÄ¿±ê¶ÔÏó?
±»Ò»¸ö»òÕß¶à¸öÇÐÃæËù֪ͨµÄ¶ÔÏó¡£Ëüͨ³£ÊÇÒ»¸ö´úÀí¶ÔÏó¡£Ò²Ö¸±»Í¨Öª£¨advised£©¶ÔÏó¡£
59. ʲôÊÇ´úÀí?
´úÀíÊÇ֪ͨĿ±ê¶ÔÏóºó´´½¨µÄ¶ÔÏó¡£´Ó¿Í»§¶ËµÄ½Ç¶È¿´£¬´úÀí¶ÔÏóºÍÄ¿±ê¶ÔÏóÊÇÒ»ÑùµÄ¡£
60. Óм¸ÖÖ²»Í¬ÀàÐ͵Ä×Ô¶¯´úÀí£¿
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
Metadata autoproxying
61. ʲôÊÇÖ¯È롣ʲôÊÇÖ¯ÈëÓ¦ÓõIJ»Í¬µã£¿
Ö¯ÈëÊǽ«ÇÐÃæºÍµ½ÆäËûÓ¦ÓÃÀàÐÍ»ò¶ÔÏóÁ¬½Ó»ò´´½¨Ò»¸ö±»Í¨Öª¶ÔÏóµÄ¹ý³Ì¡£
Ö¯Èë¿ÉÒÔÔÚ±àÒëʱ£¬¼ÓÔØÊ±£¬»òÔËÐÐʱÍê³É¡£
62. ½âÊÍ»ùÓÚXML Schema·½Ê½µÄÇÐÃæÊµÏÖ¡£
ÔÚÕâÖÖÇé¿öÏ£¬ÇÐÃæÓɳ£¹æÀàÒÔ¼°»ùÓÚXMLµÄÅäÖÃʵÏÖ¡£
63. ½âÊÍ»ùÓÚ×¢½âµÄÇÐÃæÊµÏÖ
ÔÚÕâÖÖÇé¿öÏÂ(»ùÓÚ@AspectJµÄʵÏÖ)£¬Éæ¼°µ½µÄÇÐÃæÉùÃ÷µÄ·ç¸ñÓë´øÓÐjava5±ê×¢µÄÆÕͨjavaÀàÒ»Ö¡£
Spring µÄMVC
64. ʲôÊÇSpringµÄMVC¿ò¼Ü£¿
Spring Å䱸¹¹½¨Web Ó¦ÓõÄÈ«¹¦ÄÜMVC¿ò¼Ü¡£Spring¿ÉÒԺܱã½ÝµØºÍÆäËûMVC¿ò¼Ü¼¯³É£¬ÈçStruts£¬Spring
µÄMVC¿ò¼ÜÓÿØÖÆ·´×ª°ÑÒµÎñ¶ÔÏóºÍ¿ØÖÆÂß¼ÇåÎúµØ¸ôÀë¡£ËüÒ²ÔÊÐíÒÔÉùÃ÷µÄ·½Ê½°ÑÇëÇó²ÎÊýºÍÒµÎñ¶ÔÏó°ó¶¨¡£
65. DispatcherServlet
SpringµÄMVC¿ò¼ÜÊÇÎ§ÈÆDispatcherServletÀ´Éè¼ÆµÄ£¬ËüÓÃÀ´´¦ÀíËùÓеÄHTTPÇëÇóºÍÏìÓ¦¡£
66. WebApplicationContext
WebApplicationContext ¼Ì³ÐÁËApplicationContext ²¢Ôö¼ÓÁËһЩWEBÓ¦Óñر¸µÄÌØÓй¦ÄÜ£¬Ëü²»Í¬ÓÚÒ»°ãµÄApplicationContext
£¬ÒòΪËüÄÜ´¦ÀíÖ÷Ì⣬²¢ÕÒµ½±»¹ØÁªµÄservlet¡£
67. ʲôÊÇSpring MVC¿ò¼ÜµÄ¿ØÖÆÆ÷£¿
¿ØÖÆÆ÷Ìṩһ¸ö·ÃÎÊÓ¦ÓóÌÐòµÄÐÐΪ£¬´ËÐÐΪͨ³£Í¨¹ý·þÎñ½Ó¿ÚʵÏÖ¡£¿ØÖÆÆ÷½âÎöÓû§ÊäÈë²¢½«Æäת»»ÎªÒ»¸öÓÉÊÓͼ³ÊÏÖ¸øÓû§µÄÄ£ÐÍ¡£SpringÓÃÒ»¸ö·Ç³£³éÏóµÄ·½Ê½ÊµÏÖÁËÒ»¸ö¿ØÖƲ㣬ÔÊÐíÓû§´´½¨¶àÖÖÓÃ;µÄ¿ØÖÆÆ÷¡£
68. @Controller ×¢½â
¸Ã×¢½â±íÃ÷¸ÃÀà°çÑÝ¿ØÖÆÆ÷µÄ½ÇÉ«£¬Spring²»ÐèÒªÄã¼Ì³ÐÈÎºÎÆäËû¿ØÖÆÆ÷»ùÀà»òÒýÓÃServlet API¡£
69. @RequestMapping ×¢½â
¸Ã×¢½âÊÇÓÃÀ´Ó³ÉäÒ»¸öURLµ½Ò»¸öÀà»òÒ»¸öÌØ¶¨µÄ·½´¦Àí·¨ÉÏ¡£
|