Spring | AOP 이용 | bean.xml 생성


다음에 해야 하는 것은 필요한 Bean의 설정을 준비하는 것이다. 우선 Bean 설정 파일을 사용해 보기로 하자.

먼저 “resources"폴더에 생성한 “bean.xml"를 열고, 아래와 같이 기술한다. 이제 필요한 라이브러리가 갖추어 진다.

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">
     
    <!-- aop bean... -->
    <bean id="sampleAopBean" class="com.devkuma.spring.aop.SampleAopBean">
        <property name="message" value="this is AOP bean!" />
    </bean>
    
    <bean id="sampleMethodAdvice"
        class="com.tuyano.libro.aop.SampleMethodAdvice" />
 
    <bean id="proxyFactoryBean"
            class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="target" ref="sampleAopBean"/>
        <property name="interceptorNames">
            <list>
                <value>sampleMethodAdvice</value>
            </list>
        </property>
    </bean>
             
</beans>

이번에는 총 3개의 Bean을 등록한다. 각각 다음과 같은 내용으로 되어 있다.

SampleAopBean
먼저 만든 Bean이다. 여기에는 id=“sampleAopBean"라고 이름을 지정해서 준비해 둔다.

SampleMethodAdvice
방금 만든 AOP 처리 클래스이다. 이것은 id=“sampleMethodAdvice"라는 이름으로 준비해 둔다.

ProxyFactoryBean
이것이 여기에서의 포인트이다. 이것은 org.springframework.aop.framework 패키지에 포함되어 있는 Spring AOP의 클래스이다. 이렇게 라이브러리에 포함되어 있는 클래스도 Bean 설정 파일에 의해 인스턴스를 자동 생성할 수 있다.

이 ProxyFactoryBean은 <property> 태그를 사용하여 2개의 프로퍼티를 추가하고 있다. 각각 다음과 같다.

target : AOP의 대상이 되는 Bean을 지정한다. 여기에서는 sampleAopBean (<bean id = “sampleAopBean”>에서 준비한 것)를 지정하고 있다.

interceptorNames : 이것은 AOP에 삽입하는 처리 Bean을 지정한다. 복수를 지정할 수 있도록 <list>라는 목록 태그를 지정하고 그 안에 <value> 태그에서 Bean 이름을 지정한다. 여기에서는 그 앞에서 만들었던 sampleMethodAdvice를 지정하고 있다.

따라서, AOP의 대상이 되는 Bean, AOP 처리을 수행하는 Bean, 그리고 이러한 관계를 속성으로 설정한 ProxyFactoryBean까지 3개가 필요하게 된다.