<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