Spring-- comment

A, IOC comment

  1. Spring for injecting into bean container:

  • @Component : injecting into Spring bean container
  • @Repository : a label layer Dao
  • @Service : Service label for the business layer
  • @Controller : a controller class label

  2. for obtaining data to achieve fitting assembly Bean

  • @Autowired : ByType default mode, if the class of the same name appears, is not required in accordance with Type implanting @Qualifier specified ID
  • . @Resource:  default ByName way, if the name does default in accordance with the injection ByType way

  Case of IOC comment

    (1) Large package annotations added profile scanner, package

 <context:component-scan base-package="cn.spring.aop"/>

         base-package is filled in the package name, package names with a plurality of ',' to distinguish

    (2) The definition and implementation class corresponding interface

@Repository("mapperImpl")
public class MapperImpl implements Mapper {
    @Override
    public int add(StudentBean stu) {
        System.out.println("123");
        return 0;
    }
}
@Service("StuServiceImpl")
public class StuServiceImpl implements StuService {
    @Resource
    private Mapper mapper;
    @Override
    public int add(StudentBean stu) {
        return mapper.add(stu);
    }
}

    (3) Test Class

 

@Test
    public  void IocTestBy(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        StuService stuServiceImpl = (StuService)context.getBean("StuServiceImpl");
        stuServiceImpl.add(new StudentBean());
    }

 

Two, AOP comment

  • The @Aspect : Statement section
  • @Ponitcut : public statement tangent point expression
  • @Before : Front enhanced
  • @AfterReturning : Rear enhanced
  • @Around : Enhanced Surround
  • @AfterThrowing : Enhanced exception is thrown
  • @After : ultimately enhance

  Notes achieve a variety of enhancements

    (1) Large configuration file open aop comment

 <aop:aspectj-autoproxy/>

 

    (2) interface

@Service("aopServices")
public class AopServices{
    public void doSome() throws Exception{
      /* int i=1/0;*/
        System.out.println("Service层业务");
    }
}

    (3) Enhanced Class

@Aspect 
@Component 
public  class Advices {
     // set pointcut expression 
    @Pointcut ( "Execution (AOP .. * *. *. * (..))" )
     public   void   Pointcut () { 

    } 

    // front reinforcing 
    @Before ( "Pointcut ()" )
     public  void before () { 
        System.out.println ( "front ========= =======" ); 
    } 

    // rear reinforcing 
    @ afterReturning ( "Pointcut ()" )
     public   void the afterReturning () { 
        System.out.println ( "rear ======= ==========" ); 
    } 

    //Enhanced surround 
    @Around ( "Pointcut ()" )
     public Object Around (JP ProceedingJoinPoint) throws the Throwable { 

        System.out.println ( "Surround front ======= ==========" ); 
        the proceed Object = jp.proceed (); 
        System.out.println ( "surround rear ======= ==========" );
         return the proceed; 
    } 

    // abnormal enhancement of 
    @AfterThrowing (pointcut = "Execution (AOP .. * * * * (..)..)", the throwing = "EX" )
     public  void AfterThrowing (exception EX) { 
        System.out.println ( "abnormal" );
    }

    //Ultimately enhancing 
    @After ( "Pointcut ()" )
     public  void the After () { 
        System.out.println ( "Final by ========= =======" ); 
    } 
}

    (4) Test Class

public class AopTest {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        AopServices aopServices = (AopServices)context.getBean("aopServices");
        try {
            aopServices.doSome();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

 

Guess you like

Origin www.cnblogs.com/xiao-ran/p/11776149.html