You will be fine

<Spring> 7. Annotation

by BFine
반응형

1. Component, Autowired

  • java 코드 길이를 최소화하기 위해 사용 ( IoC ), @명으로 사용한다.

  • Component, Service 클래스 위에 선언 : 객체 생성 (bean 대신) 

  • Autowired Resource Qualifier 변수위 선언 : 생성된 다른 객체 의존성 주입 property 대신

  • 두개이상일 경우 Autowired Qualifier("매핑명") 같이선언

  • Component -> 객체 생성 , Autowired-> 생성되어있는 객체를 자동연결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
================Xml===================
<context:component-scan base-package="test"/>  
//test 패기지의 모든 component 를 찾는다
======================================
@Component("dog"//dog 객체 생성
public class Beagle implements Dog{ 
@Autowired // 자동으로 생성된 객체를 연결
Mala mala;
}
=================main=====================
 ApplicationContext context=
    new ClassPathXmlApplicationContext("dog_xml.xml");
 
    Beagle dog1=context.getBean("dog",Beagle.class);
      
     dog1.bark();
   System.out.println("평균 가격 : "+dog1.avg_price());
      dog1.getMala().bark(); //말라 클래스에서도 Component 필요
===========================================
cs


실행




2. Qualifier, Resource

  • Qualifier : 매핑되는 객체가 여러개 있을 경우 Autowired로 해결 할 수 없기 때문에 사용

  • ex) Mala라는 객체를 2개 만들고 Autowired 할 경우 ( found 객체1, 객체2 에러 발생 ), 이름을 같게 해주거나 Qualifer 사용

  • Resource : Autowired+Qualifer 것으로 객체 이름을 사용하여 매핑 

1
2
3
4
5
6
7
8
9
10
@Autowired
@Qualifier("mala1")
Mala mala;
===============XML=================
<bean id="mala2" class="test.Mala"></bean>
<bean id="mala1" class="test.Mala"></bean>
==============+Main=================
Beagle beagle=context.getBean("dog",Beagle.class);
 beagle.getMala().bark();
 
cs


실행


반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기