2010-07-01 2 views
0

스프링의 IOC를 사용하여 UserService 유형 수업을 연결하고 있습니다.봄 mvc 응용 프로그램에서 어떤 콩을 연결합니까?

User 클래스는 어떻습니까?

사용자 인터페이스가 있고 UserImpl 클래스입니다. 에서

내 컨트롤러 액션의 난 그냥합니까 :

User u = new UserImpl(); 

를하거나 때로는이도에 대한 IOC를 사용하는 것이 나을?

때때로 일부 조건에 따라 클래스를 인스턴스화 할 때 다른 생성자를 사용합니다. 이런 상황에 처박혀 계신 것 같네요?

답변

3

비즈니스 오브젝트는 클래스를 사용하는 클래스의 종속성이 아니기 때문에 사용자와 같은 비즈니스 오브젝트에 대해 종속성 삽입 또는 IOC를 사용하는 것은 이치에 맞지 않습니다.

1

기본적으로 Spring IOC는 싱글 톤을 작성합니다. 즉, 앱을 사용하는 모든 사용자 스레드가 클래스의 단일 인스턴스를 공유하게됩니다. 이것은 일반적으로 서비스 유형 클래스에 적합합니다. 필요한 경우이 싱글 톤 동작을 요청 당 객체 (프로토 타입)로 변경할 수 있지만 비 -Sigleton 객체의 사용자에 대해서도이 설정을 변경할 수 있습니다.

도메인/비즈니스 클래스는 상태가 가득므로 동시성 문제를 피하기 위해 요청 당 한 번 그러한 객체를 만드는 것이 가장 쉽습니다.