controller 클래스의 변수 재사용으로 인해 값이 계속 남아있습니다.
- 작성자 :
- 강*창
- 작성일 :
- 2013-08-16 11:00:11
- 조회수 :
- 992
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요.
@Contoller 클래스에서 한번 사용된 지역변수의 값이 계속 남아있습니다.
그래서 다른 메서드 호출시 영향을 받는데 @Controller 클래스는
호출시 마다 변수가 초기화되도록 설정 할수 없나요?
예전에 applicationContext.xml <bean> 등록시에 Action class는 scope="prototype"
값을 줘서 호출시마다 초기화가 됬었는데
현재는 @Controller 클래스를 annotation 방식으로 로드해서 저 설정값을 어떻게 해야될지 모르겠네요..
@Contoller 클래스에서 한번 사용된 지역변수의 값이 계속 남아있습니다.
그래서 다른 메서드 호출시 영향을 받는데 @Controller 클래스는
호출시 마다 변수가 초기화되도록 설정 할수 없나요?
예전에 applicationContext.xml <bean> 등록시에 Action class는 scope="prototype"
값을 줘서 호출시마다 초기화가 됬었는데
현재는 @Controller 클래스를 annotation 방식으로 로드해서 저 설정값을 어떻게 해야될지 모르겠네요..
A
안녕하세요. 강태창님.
지역변수는 해당 메소드 호출 시마다 새롭게 생성되는 것으로 @Controller라고 해서 지역변수의 값이 남아 있진 않습니다.
(멤버변수의 경우는 singleton 방식으로 하나의 객체만을 사용하기 때문에 서로 공유가 됨)
다시 확인 부탁드립니다.
관련하여서 @Controller와 같은 annotation의 경우 @Scope("prototype")와 같이 scope을 지정하실 수 있습니다.
Controler의 경우는 request 나 session scope을 사용하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
지역변수는 해당 메소드 호출 시마다 새롭게 생성되는 것으로 @Controller라고 해서 지역변수의 값이 남아 있진 않습니다.
(멤버변수의 경우는 singleton 방식으로 하나의 객체만을 사용하기 때문에 서로 공유가 됨)
다시 확인 부탁드립니다.
관련하여서 @Controller와 같은 annotation의 경우 @Scope("prototype")와 같이 scope을 지정하실 수 있습니다.
Controler의 경우는 request 나 session scope을 사용하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.