1.5.4 xmlÅäÖã¨ÖØÒª£©
@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{ //×îÖÕ֪ͨ }