6.2.1. 조언 라이프 사이클 by ys

각 어드바이스는 스프링 빈(bean)이다. 어드바이스 인스턴스를 모든 어드바이스된 객체 사이에 공유할 수도 있고 각 어드바이스된 객체 내에서 유일할 수도 있다. 이를 각각 per-class와 per-instance(클래스 별 또는 인스턴스 별) 어드바이스라고 한다.

간단하게 한줄로 답하자면 스프링 빈이란 자바 객체입니다.

스프링 컨테이너(Spring Container)에 의해서 자바 객체가 만들어 지게 되면 이 객체를 스프링은 스프링 빈이라고 부르는 것입니다.

스프링 빈과 자바 일반 객체와의 차이점은 없습니다. 다만 스프링 컨테이너에서 만들어지는 객체를 스프링 빈이라고 부를 뿐이죠.

Per-class 어드바이스를 가장 많이 사용한다. 이는 트랜잭션 어드바이저같은 일반적인 어드바이스에 적절하다. 프락시 된 객체의 상태나 새로운 상태 추가에 따라 동작하지 않고 메서드와 인자에 따라 동작한다.

Per-instance 어드바이스는 믹스인을 지원하는 인트로덕션(introduction)에 적절하다. 이 경우에 어드바이스는 프락시 된 객체에 상태를 추가한다.

같은 AOP 프락시에서 공유된 어드바이스와 per-instance 어드바이스를 섞어서 사용할 수 있다.

Last updated