티스토리 뷰
Bean 정의를 통해 객체에 다양한 종속성 및 설정값(exConstructor,property...) 등을 주입할 수 있을 뿐 아니라, 객체의 범위(scope)를 정의할 수 있습니다. 정의할 수 있는 scope값으로는 크게 5개가 있습니다. 요약해서 정리하면
singletone:하나의 Bean 정의에 대해서 Spring IoC Container 내에 단 하나의 객체만 존재한다.
prototype:하나의 Bean 정의에 대해서 다수의 객체가 존재할 수 있다
request:하나의 Bean 정의에 대해서 하나의 HTTP request의 생명주기 안에 단 하나의 객체만 존재한다; 즉, 각각의 HTTP request는 자신만의 객체를 가진다. Web-aware Spring ApplicationContext 안에서만 유효하다
session:하나의 Bean 정의에 대해서 하나의 HTTP Session의 생명주기 안에 단 하나의 객체만 존재한다. Web-aware Spring ApplicationContext 안에서만 유효하다.
globalsession :하나의 Bean 정의에 대해서 하나의 global HTTP Session의 생명주기 안에 단 하나의 객체만 존재한다. 일반적으로 portlet context 안에서 유효하다. Web-aware Spring ApplicationContext 안에서만 유효하다.
Singletone
Bean이 singleton인 경우, 단지 하나의 공유 객체만 관리됩니다.
Singletone은 Bean Scope의 기본값입니다. 싱글톤객체를 참조하는 bean이라면 모두 같은 scope안에 존재합니다.
예를들어 Bean의 스코프를 싱글톤으로 하고, <ref>를 써서 다른 bean들이 해당 싱글톤 객체를 참조하면
모두 같은 scope안에 존재해서 equals문을 씀녀 같다고 나올 겁니다.
prototype
Singleton이 아닌 prototype scope의 형태로 정의된 bean은 필요한 매 순간 새로운 bean 객체가 생성됩니다.
싱글톤과 달리 protype으로 bean설정되어있으면 전부 다른 scope에 존재합니다.
마찬가지로 Bean의 스코프를 프로토타입으로 하고 다른 Bean객체들이 이 참조를 한다면
모두 다른 주소값을 가져서 equalus문을 쓰면 같지 않다고 나옵니다.
request
HTTP의 request 즉 요청에 대한 처리가 끝나고 나면 Bean이 scope에서 사라집니다.
session
HTTP의 session 즉 http가 살아있는한 scope안에 Bean이 존재합니다.
globalsession
global session scope은 HTTP Session scope과 비슷하지만 단지 portlet-based web 어플리케이션에서만 사용할 수 있다. Portlet 명세(specifications)는 global Session을 하나의 portlet web 어플리케이션을 구성하는 여러 portlet들 모두가 공유하는 것으로 정의하고 있다. global session scope으로 설정된 bean은 global portlet Session의 일생에 한정된다.
라고하네요
- Total
- Today
- Yesterday
- 운동일기
- springcloud
- config
- Kafka Connect
- github
- 루틴기록
- ACTUATOR
- 빅-오
- LoadBalancer
- git
- JWT
- zipkin
- 오늘저녁 삼겹살
- Spring + ELK
- 미래의나에게동기부여
- Logstash 활용
- producer
- elasticSearch
- Logstash to ElasticSearch
- UserService
- docker
- Feign
- 운동
- MariaDB
- prometheus
- MSA
- Gateway
- rabbitmq
- consumer
- kafka
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |