[스프링5 입문] 카테고리는 '초보 웹 개발자를 위한 스프링 5 프로그래밍 입문' 책을 공부하는 글이 업로드될 예정이다.
블로그 글에는 간단한 정리 내용들을 작성하고, 코드들은 마지막에 깃허브 링크를 첨부할 예정이다.
https://m.yes24.com/Goods/Detail/62268795
스프링5 프로그래밍 입문 - 예스24
스프링 프레임워크의 버전업으로 개선된 내용을 담았다. 처음 스프링을 배우고자 하는 독자들이 입문할 때 필요한 것은 스프링의 방대한 내용이 아닌 기초와 전반적인 흐름을 잡아주는 것으로
m.yes24.com
Chap 01 ~ 02는 기본적인 환경설정들에 대한 내용이라 Chap 03부터 업로드를 시작하려 한다.
의존이란?
- 한 클래스가 다른 클래스의 메서드를 실행할 때 이를 ‘의존’한다고 표현한다. (변경에 의해 영향 받는 관계)
DI란?
- Dependency Injection으로, 의존하는 객체를 직접 생성하는 대신 의존 객체를 전달받는 방식을 사용한다.
- DI 방식 1 : 생성자 방식
- 빈 객체를 생성하는 시점에 모든 의존 객체가 주입된다.
- 객체를 사용할 때 완전한 상태로 사용할 수 있다.
- DI 방식 2: 세터 메서드 방식
- 세터 메서드 이름을 통해 어떤 의존 객체가 주입되는지 알 수 있다.
- 메서드 이름만으로도 어떤 의존 객체를 설정하는지 쉽게 유추할 수 있다.
📚 @Bean 애노테이션
- 각 하나의 빈 객체를 생성하는 애노테이션
- 스프링 컨테이너가 생성한 빈은 싱글톤 객체
- 스프링은 @Bean이 붙은 메서드에 대해 한 개의 객체만 생성하기 때문에 다른 메서드에서 memberDao()를 몇 번을 호출하더라도 항상 같은 객체를 리턴한다.
- 즉, memberRegSvc()에서의 memberDao 객체와 changePwdSvc()의 memberDao 객체는 같은 객체이다.
📚 @Autowired 애노테이션
- 스프링 빈에 의존하는 다른 빈을 자동으로 주입하고 싶을 때 사용
- 이 애노테이션을 의존 주입 대상에 붙이면 따로 스프링 설정 클래스의 @Bean 메서드에서 의존 주입을 위한 코드 작성할 필요 없음
📚 @Import 애노테이션
- 함께 사용할 설정 클래스를 지정
getBean() 메서드 사용
// getBean("빈의 이름", 빈의 타입)
VersionPrinter versionPrinter = ctx.getBean("versionPrinter", VersionPrinter.class);
// 빈 이름을 지정하지 않고 타입만으로 빈을 구하는 방법
// 해당 타입의 빈 객체가 한 개만 존재하는 이를 리턴, 존재하지 않으면 익셉션 발생.
VersionPrinter versionPrinter = ctx.getBean(MemberPrinter.class);
예제 코드의 클래스 분류
|
|
|
|
|
|
|
AppCtx(전체) → AppConf1, AppConf2로 나누어 사용 |
|
|
|
예제 코드는 아래 깃허브에서 확인 가능하다-!
https://github.com/EvelynKimm/SpringSelfStudy
GitHub - EvelynKimm/SpringSelfStudy: 💻 혼자 Spring 공부하는 Repository
💻 혼자 Spring 공부하는 Repository . Contribute to EvelynKimm/SpringSelfStudy development by creating an account on GitHub.
github.com
'개발 공부 중! > Spring' 카테고리의 다른 글
[스프링5 입문] Chap 07. AOP 프로그래밍 (2) | 2024.01.08 |
---|---|
[스프링5 입문] Chap 06. 빈 라이프사이클과 범위 (0) | 2024.01.07 |
[스프링5 입문] Chap 05. 컴포넌트 스캔 (2) | 2024.01.06 |
[스프링5 입문] Chap 04. 의존 자동 주입 (0) | 2024.01.05 |
Spring (0) | 2022.09.28 |