@Autowired와 @Resource의 차이점
1. @Autowired : 타입(클래스)과 한정자로 빈 지정(생성자/필드/메서드에 모두 적용 가능)
2. @Resource : 이름으로 빈 지정(생성자에는 적용 불가, 필드나 메서드에만 적용 가능)
- name 속성을 생략하면 @Resource 어노테이션이 적용된 필드나 설정 메서드의 타입을 사용한다.
예제) @Resource를 사용하는 예제
1) @Resource를 사용하는 클래스
package spring.anno.ch04;
import javax.annotation.Resource;
public class HomeController {
private Number num1;
@Resource(name="num2")
private Number num2;
@Resource(name="num1") // 설정파일 직접 지정하여 가져옴
public void setNum1(Number num1){
this.num1 = num1;
}
public void display(){
System.out.println("num1 : "+num1);
System.out.println("num2 : "+num2);
}
}
package spring.anno.ch04;
public class Number {
private int number;
public void setNumber(int number){
this.number = number;
}
@Override
public String toString() {
return "[number="+number+"]";
}
}
3) 실행 클래스
package spring.anno.ch04;
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("applicationContext.xml");
factory.registerShutdownHook();
HomeController homeController =
factory.getBean("homeController", HomeController.class);
homeController.display();
factory.close();
}
}
4) 설정 파일
<?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"
xmlns:p="http://www.springframework.org/schema/p"
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">
<!-- spring.anno.ch04 -->
<bean id="homeController" class="spring.anno.ch04.HomeController" />
<bean id="num1" class="spring.anno.ch04.Number" p:number="10" />
<bean id="num2" class="spring.anno.ch04.Number" p:number="20" />
</beans>
' Spring Framework' 카테고리의 다른 글
스프링에서 어노테이션을 이용한 MVC패턴 구성 (0) | 2016.03.31 |
---|---|
@Controller와 @Component (0) | 2016.03.30 |
@Autowired : 객체를 자동으로 주입하는 어노테이션 (0) | 2016.03.30 |
@Required : 반드시 프로퍼티를 이용하여 값을 주입받도록 한다. (0) | 2016.03.30 |
스프링에서 Bean 객체의 플로우를 보기 위한 예제 (0) | 2016.03.29 |