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 | 29 | 30 | 31 |
Tags
- CSS
- 톰캣실행
- Spring
- BEAN
- frontend
- cron표현식
- 넥사크로
- loadingimage
- decoratetext
- HTML
- singleton
- 빈
- Grid
- flex-grow
- aws
- 싱글톤
- 스프링 빈
- flex-basis
- annotaion
- react
- WITH절
- gif초기화
- 넥사크로loadingimage
- 코딩
- 싱글톤컨테이너
- 마진상쇄
- setrealrowsize
- DB #데이터베이스
- singleton container
- 로딩이미지변경
Archives
- Today
- Total
All Day Tired
@Configuration(feat.싱글톤) 본문
AppConfig를 쓴다면 @Configuration을 사용했을 것이다.
그리고 스프링 빈을 수동으로 등록했다면 코드 상으로 같은 클래스를 여러번 new한 상황이 발생하게 된다.(인스턴스를 한것이지)
근데 여기서 의문
스프링 빈은 스프링 컨테이너에서 1개씩만 만들어지도록 싱글톤 패턴이라는데 이러면 싱글톤이 아니게 되잖아?
이런 의문이 생길 수 있다.
이것을 해결해준 것이 @Configuration
- 스프링이 @Configuration에서 빈으로 만들어야하는 클래스를 조회해서 이 클래스들을 바로 스프링 컨테이너에 올리는게 아니라
- CGLIB 바이트코드 조작 라이브러리를 사용해서 AppConfig에 있는 클래스들을 상속 받는 클래스를 새로 만들어내서 이 새로 만들어진 클래스를 스프링 빈으로 등록하는 것!
- 이렇게 새로 만들어진 클래스 안에는 싱글톤을 보장해주도록 코드가 짜여져있어서 싱글톤을 유지해주는 것이다.
그냥 쉽게 생각해보자면
스프링이 AppCofig에 빈으로 등록되어야하는 클래스들을 똑같이 새로운 클래스로 만들고 이 새로 만든 클래스를 스프링 빈으로 등록해! 근데 이 새로 만들어진 클래스는 싱글톤을 곁들인 것
이렇게 이해하기로 했다...
참고로 @Configuration을 안쓰고 @Bean만 쓴다면 싱글톤이 보장되지 않은 채로 스프링 빈으로 등록 됨.
'Back > Spring' 카테고리의 다른 글
싱글톤, 싱글톤 컨테이너 (2) | 2024.12.31 |
---|---|
스프링컨테이너, 스프링빈 등록/주입 (0) | 2024.12.30 |
@Scheduler, cron표현식 사용 (0) | 2024.10.27 |
스프링 빈 등록 (0) | 2024.09.23 |
스프링에서 RestTemplate 예제 (0) | 2024.08.20 |
Comments