복붙노트

[SPRING] 싱글 톤 DAO 객체를 가지고 있어도 괜찮습니까?

SPRING

싱글 톤 DAO 객체를 가지고 있어도 괜찮습니까?

다음 클래스의 구조를 고려하십시오.

AccountDAO는 일부 데이터를 삽입하는 메소드에 @Transactional 주석이있는 Spring bean입니다.

이거 괜찮아? 싱글 톤 DAO 클래스는 성능 문제를 일으킬 수 있다고 생각합니다. 일부 봄 주입을 서비스 계층 클래스에 사용하는 것이 더 좋을 수 있습니까? (나는 봄에 익숙하지 않았기 때문에 어떤 조언을해도 좋을 것이다)

해결법

  1. ==============================

    1.Spring 문서에서 권장되는 접근법은 DAO를 일반 클래스로 작성하고 싱글 톤 범위를 사용하는 것이다. DAO가 아무런 상태를 유지하지 않으면 정상적으로 작동합니다.

    Spring 문서에서 권장되는 접근법은 DAO를 일반 클래스로 작성하고 싱글 톤 범위를 사용하는 것이다. DAO가 아무런 상태를 유지하지 않으면 정상적으로 작동합니다.

    http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes-prototype

    3.4.2 절.

    Spring을 사용하고 있다면, 준비가되어있는 문장이나 기타 등등을 처리 할 필요가 없습니다. JdbcTemplate 또는 HibnerateTemplate을보십시오. 예, DAO를 서비스에 삽입하거나 Spring을 사용해야 할 필요가있는 곳에 Spring을 연결해야합니다.

  2. ==============================

    2.스프링에 익숙하지는 않지만 일반적으로 데이터 소스에 대한 연결을 여러 스레드에서 액세스하지 않으려 고합니다. 아마 O.K입니다. DAO 객체가 스레드 컨텍스트 내에서 의사 단일 톤이지만 스레드간에 공유되지 않도록 구성하면됩니다. 대부분의 IoC 컨테이너는 구성을 통해이를 수행 할 수 있습니다.

    스프링에 익숙하지는 않지만 일반적으로 데이터 소스에 대한 연결을 여러 스레드에서 액세스하지 않으려 고합니다. 아마 O.K입니다. DAO 객체가 스레드 컨텍스트 내에서 의사 단일 톤이지만 스레드간에 공유되지 않도록 구성하면됩니다. 대부분의 IoC 컨테이너는 구성을 통해이를 수행 할 수 있습니다.

    물론 이것은 데이터 일관성에 대한 다른 고려 사항을 제시하며주의 깊게 관리해야합니다. 일반적으로 ORM 부분이 도움이 될 것입니다.

  3. from https://stackoverflow.com/questions/3937548/is-it-ok-to-have-singleton-dao-objects by cc-by-sa and MIT license