spring--day02±Ê¼Ç

1.5.4 xmlÅäÖã¨ÖØÒª£©

1.5.5 ²âÊÔ

@Test public void demo01(){ //´ÓspringÈÝÆ÷»ñµÃ¾ÍÊÇ֮ǰĿ±êÀ࣬µ«Ä¿±êÀà×Ô¶¯spring½øÐÐÔöÇ¿¡£ String xmlPath = \; ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); TeacherService studentService = applicationContext.getBean(\,TeacherService.class); studentService.addTeacher(); studentService.updateTeacher(); } 1.6 aop aspectj »ùÓÚxml£¨ÖØÒª£© 1.6.1 ½éÉÜ

? ? ? ? ?

AspectJÊÇÒ»¸ö»ùÓÚJavaÓïÑÔµÄAOP¿ò¼Ü

Spring2.0ÒÔºóÐÂÔöÁ˶ÔAspectJÇеã±í´ïʽ֧³Ö

@Aspect ÊÇAspectJ1.5ÐÂÔö¹¦ÄÜ£¬Í¨¹ýJDK5×¢½â¼¼Êõ£¬ÔÊÐíÖ±½ÓÔÚBeanÀàÖж¨ÒåÇÐÃæ а汾Spring¿ò¼Ü£¬½¨ÒéʹÓÃAspectJ·½Ê½À´¿ª·¢AOP jar½éÉÜ

AspectJÊÇaop¿ò¼Ü£¬Ö§³Öaop£¬AspectJµÚÈý·½Ìṩ¹æ·¶£¬spring½øÐÐÕûºÏ¡£²¢¶Ô¹æ·¶×ö³öʵÏÖ¡£ aopÁªÃË£ºcom.springsource.org.aopalliance-1.0.0.jar £¬¶¨Òåaop¹æ·¶ spring aopʵÏÖ£ºspring-aop-3.2.0.RELEASE.jar

aspectj ¹æ·¶£ºcom.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar spring aspectjʵÏÖ£ºspring-aspects-3.2.0.RELEASE.jar

1.6.2 ÇÐÈëµã±í´ïʽ

? λÖãº

1.2 ÐÞÊηþ£º·½·¨Ç°ÐÞÊηû¡£ÀýÈ磺public¡¢privateµÈ¡£¿ÉÒÔÊ¡ÂÔ 1.3 ·µ»ØÖµ£ºÈ·¶¨·½·¨µÄ·µ»ØÖµ

java.lang.String , ÒªÇó·½·¨±ØÐë·µ»Ø×Ö·û´® void£¬ÒªÇó·½·¨Ã»Óзµ»ØÖµ * £¬·µ»ØÖµÈÎÒâ¡£

1.4 °ü£¬·½·¨ËùÔڵİü½á¹¹¡£ÀýÈ磺cn.itcast.servcie cn.itcast.servcie £¬ È·¶¨¾ßÌåµÄ°ü¡£ cn.itcast.service.. £¬±íʾcn.itcast.servcie°ü£¬¼°ËùÓÐ×Ó°ü cn.itcast.*.servcie £¬±íʾcn.itcastÖ®ºó´æ·ÅºÜ¶à×ÓĿ¼¡£ÀýÈ磺cn.itcast.user.service /cn.itcast.book.service

×ۺϣºcn.itcast.crm.*.service..

1.5 ÀàÃû£¬·½·¨ËùÔÚÀà UserService £¬ ¾ßÌåµÄÀà *Service£¬±íʾÒÔService½áβ User*£¬±íʾÒÔUser¿ªÍ· UserService+£¬±íʾÀà±ØÐëʵÏÖUserService½Ó¿Ú

* £¬±íʾÈÎÒâ

1.6 ·½·¨£¬ÐèÒª±»±í´ïʽƥÅä·½·¨Ãû³Æ saveUser£¬±íʾ¾ßÌå·½·¨ save*£¬±íʾÒÔsave¿ªÍ··½·¨ *Do£¬±íʾÒÔDo½áβ·½·¨

* £¬±íʾ·½·¨ÃûÈÎÒâ

1.7 ²ÎÊýÁÐ±í£¬·½·¨µÄ¾ßÌå²ÎÊý ()£¬±íʾûÓвÎÊý (int) £¬±íʾһ¸öint²ÎÊý (java.lang.String) £¬±íʾһ¸ö×Ö·û´®²ÎÊý (int , java.lang.String) £¬±íʾÁ½¸ö²ÎÊý

(..) £¬±íʾ²ÎÊý¸öÊýÈÎÒâ

1.8 Òì³££¬È·¶¨·½·¨Å׳öµÄÒì³£¡£ÀýÈ磺java.lang.RuntimeException ±íʾÔÊÐíʱÒì³£¡£¿ÉÒÔÊ¡ÂÔ

×ۺϰ¸Àý£ºexecution(* cn.itcast.crm.*.service..*.*(..))

·µ»ØÖµÈÎÒâ cn.itcast.crm.°üÈÎÒâ.service µ±Ç°ÒÔ¼°×Ó°ü.ÀàÃûÈÎÒâ.·½·¨Ãû³ÆÈÎÒâ(²ÎÊýÈÎÒâ)

2.within Æ¥Åä°ü£¬ within(cn.itcast..*) 3.this Æ¥Åä´úÀí¶ÔÏó 4.target Æ¥ÅäÄ¿±ê¶ÔÏó

5.args Æ¥Åä²ÎÊýÁÐ±í¡£ÀýÈ磺args(int,int)

6.bean Æ¥ÅäÖ¸¶¨µÄbean¡£ÀýÈ磺bean(userServiceId) ֻƥÅäÖ¸¶¨µÄbean

1.6.3 AspectJ¹æ¶¨Í¨ÖªÀàÐÍ

?

AspectJ¹æ¶¨6ÖÖ֪ͨÀàÐÍ£º

before£ºÇ°ÖÃ֪ͨ£¬Ä¿±ê·½·¨Ç°Ö´ÐС£

afterReturning£ººóÖÃ֪ͨ£¬Ä¿±ê·½·¨ºóÖ´ÐС£ around£º»·ÈÆÍ¨Öª£¬Ä¿±ê·½·¨Ç°ºóÖ´ÐС£¡¾¡¿ afterThrowing£ºÅ׳ö֪ͨ£¬Ä¿±ê·½·¨·¢ÉúÒì³£¡£ after£º×îÖÕ֪ͨ£¬ÎÞÂÛʲôÇé¿ö¶¼»áÖ´ÐС£

»·ÈÆ try{ //ǰ²Ù×÷ -- before //Ä¿±ê·½·¨ //ºó²Ù×÷ -- afterReturning } catch(e){ //Òì³£ -- afterThrowing } finally{ //×îÖÕ֪ͨ }

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)