Spring | AspectJ 이용 | aopbean.xml 작성


이어서 Bean 설정 파일을 준비하다. 이번에는 “aopbean.xml"라는 파일을 새로 추가하도록 하자.

“resources"폴더에 “aopbean.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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop.xsd">
 
    <bean id="sampleAspect" class="com.devkuma.spring.aop.SampleAspect" />
    <bean id="sampleAopBean" class="com.devkuma.spring.aop.SampleAopBean">
        <property name="message" value="this is AOP bean!" />
    </bean>
 
    <aop:aspectj-autoproxy />
     
</beans>

이번에는 지금까지 사용해 온 bean.xml에 비해 여러가지 기술해야 하는 것이 많다. 내용에 대해서 아래와 같이 정리를 해보자.

<beans> 태그의 속성

먼저 <beans> 태그 부분을 보자. 다음 속성이 추가되어 있다.

xmlns : aop = "http://www.springframework.org/schema/aop"

그리고, 이 스키마 위치(schema location)를 나타내는 값이 xsi:schemaLocation 값에 추가되어 있다. 구체적으로는 아래와 같은 부분이다.

http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd

이것은 설정 파일에서 사용되고 있는 <aop:aspectj-autoproxy/>를 사용할 수 있도록 하기 위한 것이다. 다소 길지만, 반드시 추가 기입해야 한다.

Bean 등록

<bean id = "sampleAspect"class = "comdevkuma.spring.aop.SampleAspect"/>
<bean id = "sampleAopBean"class = "com.devkuma.spring.aop.SampleAopBean">
    <property name = "message"value = "this is AOP bean!"/>
</ bean>

이것은 이미 여러 번 작성해 봤었다. Bean 등록 태그이다. SampleAspect 클래스와 SampleAopBean 클래스를 각각 Bean으로 등록한다.

AspectJ 자동 프록시

<aop:aspectj-autoproxy/>

이것은 AspectJ를 위한 태그이며, 먼저 Spring AOP 때 이용한 ProxyFactoryBean에 해당하는 것을 자동으로 생성하는 태그이다. 이를 기술하게 되면 ProxyFactoryBean으로 준비된 기능이 자동으로 포함된다.