일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jQuery
- RDS
- 웹게임
- Cookie
- 알고리즘
- EC2
- 암호화
- HTML
- JSP
- express
- CSS
- docker
- phaser
- websocket
- 웹소켓
- node.js
- JavaScript
- 비트코인
- SQL
- model1
- 블록체인
- AWS
- Ajax
- 배포
- PL/SQL
- autowired
- Servlet
- tiles.xml
- 도커
- Spring
- Today
- Total
記錄
Spring) prototype을 이용한 새로운 객체 생성 본문
<기존 방식의 경우 = 싱글톤>
bean에서 객체를 가져올 때 기본적으로 싱글톤 방식으로 객체를 가져온다. 즉, 아무리 여러번 객체를 가져와도 가져올 때마다 새로 생성하는 것이 아니라 하나의 동일한 객체를 가져오게 된다는 것이다.
<scope="prototype" 의 경우 = 매번 새로운 객체 생성>
bean에서 객체를 가져올 때 기존처럼 싱글톤 방식으로 하나의 동일한 객체를 계속 가져오는 것이 아니라 getBean()으로 객체를 가져올 때마다(주입 받을 때마다) 객체를 새로 생성해서 새로운 객체를 가져오게 된다. 즉, getBean()을 통해 객체를 가져올 때(주입이 필요할 때)마다 새로운 객체가 필요하다면 scope="prototype"을 사용한다.
예제코드
콘솔결과
콘솔 결과의 맨 밑 두 줄을 보면 객체의 주소값이 다른 것을 확인 할 수 있다. 이는 xml에서 scope="prototype"설정을 해두었기 때문에 getBean()으로 객체를 가져올 때 기존의 싱글톤 객체를 갖는 것이 아니라 가져올 때마다 새로운 객체를 생성해서 가져왔기 때문이다.
cf) 주의할 점
@Resource나 @Autowired, 생성자 등을 이용해 의존관계 주입을 통해 직접 프로토타입 빈을 가져오려고 하면 싱글톤 빈처럼 동작해서 새로운 객체를 가져오는 것이 아니라 동일한 객체를 계속 가져오게 된다.
+ a
프로토 타입 설정과 관련하여 정리가 잘 된 포스팅을 찾았다
"주의할 점" 부분도 아래 포스팅을 참고하여 정리하였다
http://nkcnow.tistory.com/234
'Web > Spring framework' 카테고리의 다른 글
Spring) Spring Framework MVC Basic Flow 상세 (+예제코드) (0) | 2018.04.30 |
---|---|
Spring) Spring Framework MVC Basic Flow (0) | 2018.04.30 |
Spring) bean's Life Cycle (bean의 생명주기) (0) | 2018.04.30 |
Spring) @Configuration을 사용한 xml의 대체 (0) | 2018.04.28 |
Spring) @Resource의 활용 (0) | 2018.04.28 |