@Required

반드시 프로퍼티를 이용하여 값을 주입받도록 정의. 값이 안들어오면 에러나게 한다.

메서드 위에만 표시 가능하다. (프로퍼티 위에는 표시 불가능)

설정 파일에서 값을 설정하지 않을 경우 예외를 발생시킨다.


1) 리콰이어드 어노테이션을 넣은 클래스


package spring.anno.ch01;


import org.springframework.beans.factory.annotation.Required;


public class RequiredClass {

private int number; 

@Required // 반드시 프로퍼티를 이용하여 값을 주입받도록 정의. 값이 안들어오면 에러나게 함. 

public void setNumber(int number){

this.number = number;

}

public void display(){

System.out.println("RequiredClass.number = "+number);

}

}




2) 실행 클래스


package spring.anno.ch01;


import org.springframework.context.support.AbstractApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Main {


public static void main(String[] args) {

AbstractApplicationContext factory = 

new ClassPathXmlApplicationContext("required.xml");

factory.registerShutdownHook();


RequiredClass required = 

factory.getBean("required", RequiredClass.class);

required.display();


factory.close();

}

}



3) 설정 파일

<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

<context:annotation-config />
<bean id="required" class="spring.anno.ch01.RequiredClass">
<property name="number" value="10"/><!--SetNumber를 호출하며 10을 넣어줌 -->
</bean>

</beans>

위의 설정 파일에서 프로퍼티를 통해 number에 10을 넣어줬기 때문에 Required를 지정해도 에러가 나지 않는다.
만일 값을 넣지 않으면 에러가 나게끔 처리하는 어노테이션이다.

RequiredClass.number = 10




Posted by netyhobby
,