11.autowired를 이욯한 di
Autowired를 이욯한 DI
-XML로 설정 할때의 모듈 변경 방법
이전까지는 xml로 뺐는데 코드를 수정하지 않고 하였다
이유?
바꾸기 위한 코드가 나중에 수정 될 수 있기 때문에 결합상태 내용이 변경을 할 수 있게 코드를 뺀것이다
ex) b2를 쓰다가 b3로 업데이트 할때 생성해야할 객체가 b3가 되야한다 -> 이떄 설정을 바꿔야하는데
이때 xml을 사용했을때는 가능하다
객체를 바꾸면 설정은 같이 바뀌지 않음 -> 코드에 메타데이터를 심는 형식으로 바뀜
- Annotaion으로 설정할 때의 모듈 변경 방법
장점
@Component을 가지고 있는 녀석을 생성하고 삭제해준다
객체를 바꿔버리면 설정도 바꿔진다 다른거 손 쓸 필요가 없다
설정을 분리하는 방법에서 설정을 코드와 같이 가져가는 방법을 사용한다
@Autowired
@Autowired // 자동으로 객체를 연결해주세요
@Override
public void setExam(Exam exam) {
this.exam = exam;
}
setter에게 autowired를 해준다 에러 발생-> 지시서에 객체를 연결해주세요 라고 말해야한다
context라는 namespace가 필요하다
<context:annotation-config/>
<bean id ="exam" class ="spring.di.entity.NewlecExam" p:kor="1" p:eng="1"/>
<bean id="console" class="spring.di.ui.GridExamConsole" >
</bean>
<util:list id="exams" list-class="java.util.ArrayList">
<bean class ="spring.di.entity.NewlecExam" p:kor="1" p:eng="1"/>
<!-- 위에는 직접 만든것이고 아래는 참조 -->
<ref bean = "exam"/>
</util:list>
댓글남기기