5847927828
621
2020-01-23 18:29:42
6
460

스프링 mapper을 di하는 이유가 무엇인가요?


컨트롤러에서 mapper을 다음과같이 @Autowired 어노테이션을 이용해서 di해주는데

di를 해주는 이유가 무엇인가요??

	@Autowired
	productMapper pMapper;


0
  • 답변 6

  • yadameda
    191
    2020-01-23 18:49:24

    스프링 컨테이너에서 관리하는 bean을, 개발자가 만든 코드에서 써야 하니깐 @Autowired로 가지고 오는겁니다.

    매번 new productMapper(); 로 생성해서 써도 되는데, 상태를 유지하지 않는 오브젝트를 매번 새로 생성해서 쓰면 리소스 소모가 심하겠지요? 그래서 스프링에 빈으로 등록해서, 싱글톤으로 만들어서 여러 사용자 코드에서 @Autowired 가져다 쓰는겁니다. 근데 저 Mapper가 DAO역할을 하는 맵퍼면 @Repository 등의 어노테이션으로 불러오는게 더 좋을 것 같습니다. @Autowired 도 @Repository 도 빈을 DI받는데,@Repository를 사용하면 예외발생시에 스프링에서 추상화한 SQL관련 Exception을 받을 수 있습니다.

  • 구구네
    55
    2020-01-23 18:58:57

    댓글 너무 좋네요

  • Java .
    2020-01-23 19:02:17
    댓글 엄청나게 좋아서 추천드립니다. 순간 백기선님을 본줄알았네요.
  • 5847927828
    621
    2020-01-23 20:55:17

     

    yadameda 앗 그렇군요 ! 이유도 모르고 썼었는데.. 감사합니다!!
  • TotalBox
    162
    2020-01-23 21:27:05

    와... 댓글 너무 좋은데요 추천 합니다!

  • poor
    170
    2020-01-23 23:37:40
    스프링 마스터가 있다면 @yadameda  이 아닐런지..
  • 로그인을 하시면 답변을 등록할 수 있습니다.