쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는
https://github.com/2jaehoon/sangyongSpring에 올려두었습니다.
https://github.com/2jaehoon/SpringDITest
Spring DI (약결합)
- 의존성 주입하고, 객체를 찾고 얻기 위해 Spring Container를 사용
- 실행하기 위해 별도의 Container가 필요하지 않다.
- 설정 파일 방식, annotation 방식으로 의존성 주입에 사용할 정보를
Spring Container에 설정해 준다.
- 설정 파일에 등록되어 Spring Container가 생명 주기(객체를 생성하고 소멸시키는 일)를
관리하는 클래스들을 bean이라고 한다.
- Spring Container가 생성되면 설정 파일에 있는 bean들을 singleton으로
하나의 객체를 생성하고 사용한다.
의존성 주입
* 생성자 의존성 주입
<bean id="아이디" class="패키지명.클래스명">
<constructor-arg ref="의존성주입할 객체"/>
</bean>
* method 의존성 주입
* 문자열 Injection
* 정수를 injection
* JCF(Java Collection Framework) injection
- java.util.List injection
- java.util.Map injection
Singleton pattern 적용 클래스 객체화
annotation 방식
- 설정용 xml에 의존성 주입 설정( <bean> )을 하지 않고 사용하는 방식
- 의존성 주입 관계를 한 눈에 파악하기 힘들다.
- 대규모 프로젝트에 적합하지 않고, 소규모 프로젝트에 적합한 방식
- spring context가 필요
- Spring Container가 지정된 패키지를 component-scan하여
클래스를 찾고 annotation대로 의존성 주입하여 사용한다.
* /WEB-INF/spring/appServlet/servlet-context.xml에 설정
1. context가 xml:schemaLocation에 설정
2. annotation - config 설정
<context:annotation-config/>
3. Spring Container가 component를 scan할 패키지를 설정
<!-- 예시 -->
<context:component-scan base-package=“패키지명”/>
<context:component-scan base-package=“패키지명.*”/>
<context:component-scan base-package=“kr.co.sist”/>
<context:component-scan base-package=“kr.co.sist.*”/>
* 사용 순서
1. Component scan할 클래스위에 (bean) @Component annotation 설정
2. 의존성 주입 받을 클래스(인터페이스) 위에 @Autowired를 설정
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0517/MyBatis에서 CRUD 사용 (0) | 2023.05.25 |
---|---|
0516/MyBatis 설정, properties (0) | 2023.05.17 |
0512/Spring, 강결합, 약결합 (1) | 2023.05.15 |
0511/AJAX (0) | 2023.05.15 |
0510/include, session, cookie, fileUpLoad (0) | 2023.05.10 |