1.ʲôAOP
  Aspect  Oriented   Programming  ̻
    ޸ԭԴ ӷ
2.AOP ɲ 
  ## Aspect    һװͬһ 
  JoinPoint ӵ  Ŀλ(һָľһ)
  ## Pointcut    һӵļ
      (Ժʹñʽ)
  Target  Ŀ 
  ##Advice  ֪ͨ  е߼ִеʱ(ǰ   쳣 )
  Proxy      ͨ ǿĿ 
     JDK Ķ̬ 
     CGLIB Ķ̬ 
  ( ֪ͨ  е)
 3.дһUserService  ʹIOC װSpring   
    һ ¼  һ ע  ޲Ρ
    Ӧ롣
   ִ֮ǰ ʹ AOP  $$$$$$
 4.ִ֮ ʹ AOP  ######  
  
 5.ʽд 
   5.1 ޶ʽ 
       within(ʽ)
              ʽ    com.xdl.service.UserService     com.xdl.service µUserService
                    µзҪ뵽 
              ʽ    com.xdl.service.*     com.xdl.service µ
                    µзҪ뵽
              ʽ    com.xdl.service.*.*     com.xdl.serviceֱӰµ
                    µзҪ뵽
             ʽ    com.xdl..*     com.xdl µ ԼӰµ
                    µзҪ뵽
    5.2 ޶ʽ   
       execution(ʽ)
               ʽ Ĺ   Ȩ   ֵ    ()  쳣  Щ
                    Ȩ   쳣 Ǳ
       void  login()   еlogin  ֵvoid 
       void  log*()    еlog ͷֵvoid  
       *   com.xdl.service.UserService.*()   com.xdl.service.UserService ͵
               еķ  
    5.3 bean ޶ʽ
               Spring е id   ޶ 
       bean(ʽ)
  6.֪ͨ 
    <aop:before>    ǰ֪ͨ  Ŀ귽ִ֮ǰȥ
    <aop:after-returning>   ֪ͨ Ŀ귽ִ֮ȥ֯ 
    <aop:after>   ֪ͨ      Ŀ귽ִ֮ Ƿ쳣ִ
    <aop:around>  ֪ͨ       Ŀ귽ִеǰ ֯ 
    <aop:after-throwing>     쳣֪ͨ  Ŀ귽ִг쳣 öӦ߼
   7.ڱע aop
     7.1 һĿ   Spring ļ    jar(ioc   aop)
     7.2 ɨ 
        <context:component-scan   base-package="ɨİ"  />
     7.3 עʽaop 
        <aop:aspectj-autoproxy     proxy-target-class="true" />
        proxy-target-class   ǷȲcglib  
        true ֱʹ cglib  false  ʹjdk  ɴ ʹ cglib
     7.4 дһҵ  ҵϼӶӦıע
     7.5 д  ȻϼӶӦɨע 
              Ȼϼ@Aspect 
              Ȼķ  ӶӦ֪ͨע 
       @Before(еʽ)   @After(еʽ)   @Around(еʽ)  ....
     7.6 ȡҵ  
    8.֪ͨӦע 
    @Before("ʽ")   ǰ֪ͨ   ҵ񷽷ִ֮ǰ
    @After("ʽ")   ֪ͨ     ҵ񷽷ִ֮
    @AfterReturning("ʽ")  ֪ͨ  ҵ񷽷ִִ֮ 
          ֪ͨ  ҵ񷽷쳣 ִ 
    @Around("ʽ") ֪ͨ   ҵ񷽷ǰִ   ProceedingJoinPoint 
           ȡĿ ԼĿ귽Ϣ 
    @AfterThrowing("ʽ")   쳣ִ 쳣Ͳִ
          
    ִ˳: ǰ  ǰ  ҵ񷽷          
    쳣:  ǰ  ǰ  ҵ񷽷     쳣 
     
    9.ʹñעʽAOP  һ¼߼ (ĿԷݿ)  
    Ҫûķ   ӦĽӿڡ Ҫ ͳƵ¼ִʱ䡣
    
    
    
    
    
    
           
                       
              
              
              
              
              
              
     
     
     
         
         
        
        
        
            
  
  
  
  
  
  
  
     
    
    
     
  
  
  
  
  
       
             
    
    
    
 
 
 
  
  
  
  
  
      
 
 
 
  
  
            
  