Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Swing
- 인스턴스
- JavaScript
- socket
- 깃허브
- jcenter
- 메소드
- SwingCalendar
- HTML모드
- mavenCentral
- 템플릿엔진
- Oracle
- 사용자관리프로그램
- 백준
- java
- 클래스
- springboot
- 생성자
- JPA Auditing
- Spring
- 상속
- 코딩
- 컬렉션프레임워크
- 클라이언트
- 카카오코딩테스트
- springDataJPA
- 바인드변수
- 서버
- 멀티쓰레드
- 자바
Archives
- Today
- Total
프리 정보 컨텐츠
스프링부트 @Autowired의 원리와 DI주입 본문
@Autowired를 사용하기 전에 어노테이션을 사용하지 않는 경우는 어떠한 상황이며 왜 어노테이션을 사용해야하는지에 대한 의문이 생겨서 정리하고자 합니다.
<bean id="b" class="data B2"/>
<bean id="console" class="servise.S">
<property name="b" ref="b"/>
</bean>
위의 예제는 어노테이션을 사용하지않고 XML로 설정할 때의 객체 설정 방법입니다.
B2를 사용하다가 업데이트 할 경우 B3로 대체해주어야 하는 경우를 예로 들겠습니다.
새로운 객체를 B3로 바꾸어줄경우에 class에 있는 코드를 data B3로 수정해주어야 합니다.
이런 귀찮음(?)을 해결해주기위해 객체를 바꾸었을 때 설정도 같이 바꾸도록 하기 위해 어노테이션을 사용합니다.
스프링에서 코드를 읽을 수 있도록 메타 데이터인 @Component 를 붙여 이를 객체화합니다.
설정파일 없이 코드내에서 어노테이션을 사용함으로써 객체를 바꾸어주는 간편함이 어노테이션의 가장 큰 장점입니다.
그렇다면 spring에서 흔히 볼 수 있는 @Autowired는 무슨 역할을 하는 것일까요?
마찬가지로 XML에서 작성하던 코드를 예로 들어보겠습니다.
<property name="exam" ref="exam"/>
위의 XML코드를 어노테이션으로 사용할 때에
필요한 Setter부분에 @Autowired를 지정해줌으로써 자동으로 객체를 연결해주는 역할을 합니다.
추가적으로 @Autowired를 할 때는 namespace에서 context를 지정해주고
<context:annotation-config/> 를 지정해주어야 합니다.
Comments