250x250
반응형
Recent Posts
Recent Comments
Link
«   2025/05   »
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 29 30 31
Archives
Today
Total
관리 메뉴

재 현

스프링 공부 정리 본문

Java/Spring

스프링 공부 정리

본명은이점례 2023. 8. 14. 11:34
728x90

공유를 목적으로 하는 것 아닌 개인 단순 정리 글입니다.

 

 

 

1. 환경설정

- Spring Boot ver 3.x.x -> java 17 설치 -> jdk와 sdk를 java 17로 설정

 

2. 왜 스프링인가?

수많은 프레임워크 중에 왜 스프링? 

우리는 객체지향을 알 필요가 있다. 객체 지향 중 다형성의 원리를 지키고자 한다. 하지만 순수 자바로는 DIP, OCP를 지키면서 개발하기 쉽지 않다. 스프링이 그걸 쉽게 해준다. DI Container와 의존성 자동 주입을 해준다.

 

3. ApplicationContext

스프링 컨테이너이다. Bean으로 등록한 뒤 스프링은 이를 싱글톤으로 유지시켜준다. Bean은 중복되어선 안된다. @Configuration이란 annotation을 붙인 class에 Bean을 등록한다. 최종적으론 lombok의 RequiredAndConstructor를 사용하면 된다.

 

4. 중복

Bean은 중복이 있으면 터진다. 이를 피하기 위해 이름 바꾸기, @Qualifier, @Primary 등 다양한 방식이 있으므로 상황에 맞게 쓴다.

 

5. 빈 생성 주기

스프링 컨테이너 생성 -> 빈 생성 -> 의존 관계 주입 -> 콜백 -> 사용 -> 콜백 -> 종료

이 순으로 주기가 돌아가고, 빈 생성 후와 소멸 전에 함수를 쓰고 싶으면 @PostConstruct와 @PreDestroy 어노테이션을 붙이면 된다.

 

6. 빈 스코프

Prototype은 요청마다 새로 생성(스프링이 초기화까지해줌), Singleton class(스프링 끝날때까지)가 Prototype을 가지고 있으면 의존관계 주입 시 생성해놓고 가져오기 때문에 같은 값 반환, -> Provider로 매번 생성해서 가져오기

 

7. 프록시

요청 들어오기 전까지 가짜 프록시로 버티기

 

728x90