2012-03-09 3 views
0

나는 세션 내 @Controller에 콩을 범위 한 :이 SessionPreferences라고 내가스프링 MVC 일반 컨트롤러

는 거의 모든 내 컨트롤러의 그것의 사용을 그 이름이 :-) 무엇을 설명 할 것입니다 희망 @Autowired를 통해 각 컨트롤러에 쉽게 삽입 할 수 있습니다.

더 자세히보고 싶습니다 .... 어떻게하면이 중복을 피할 수 있습니까? 서비스, ​​다른 bean에 대한 모든 공유 참조를 저장하기 위해 응용 프로그램에 "아버지"컨트롤러가있을 수 있습니까?

+0

"더 깊게 가다"는 것은 무엇을 의미합니까? – skaffman

답변

1

아마도 컨트롤러가 구현하는 추상 클래스가 도움이 될까요?

만약 내가 당신을 이해한다면, 당신은 기본적으로 모든 서비스와 daos를 직접 주입하는 수업을 원한다. 그러면 나머지 수업은 그 수업을 물려받을 것인가?

이렇게하면 클래스가 삽입 한 싱글 톤을 참조 할 때 스프링이 프록시를 설정하는 방식에 문제가 발생할 수 있습니다. 100 % 확신 할 수는 없지만이를 피하기를 원할 수도 있습니다.

또한 서비스를 중단하면 해당 기본 클래스에서 상속 한 모든 컨트롤러가 손상 될 수 있으므로 실제로 권장하지는 않습니다. 컨트롤러를 응용 프로그램의 너무 많은 측면과 연결하고 있습니다.

+0

Abstract 클래스가 작동해야한다고 생각합니다. – aglassman

+0

@dardo : 모든 Controller가 사용할 수 있도록 SessionPreferencesKeeper bean이 필요합니다. 사방에 주입하는 것이 컨트롤러 상속을 사용하는 것보다 낫다고 생각한다면 .... –

+0

개인적으로 더 좋을 것이라고 생각합니다. 그렇게하면 스프링이 싱글 톤에서 프록시를 처리하게됩니다. 당신이 모든 하위 클래스에서 주입을 상속 받았다면, LOL일지도 모르겠다. 논쟁에 문제가있다. – dardo

관련 문제