2011-05-16 6 views
1

은 @Component, @Service, @Repository, @Service @Resource와 @Autowired 등봄에 컨트롤러의 서비스, 서비스에서 daos를 주입하는 가장 적합한 방법은 무엇입니까?

서비스 내 DAO를 주입 가장 적절한 방법은 무엇이며 내 서비스 클래스와 같은 스프링 프레임 워크의 많은 주석이 있습니다 Spring Controller에서.

주석이 너무 많아 모든 상황에서 @Autowired가 특히 혼란스러워지고 있습니다.

답변

2

@Service@Repository는 좀 더 (더 정교한 물건 저장소에서 서비스의 separete하는) 빈을 지정 @Component 단지 "하위 주석"입니다. 분사 시점에서이 세 가지는 동일합니다.

주입 들어 3있다 :

  • @Resource
  • @Inject
  • @Autowired

@Autowired 가장 강력한 주석이지만 @Resource (JSR-250) 및 @Inject (JSR -330)이 표준화되었습니다. - 비 스프링 환경에서 애플리케이션을 재사용 할 계획이 없다면이 문제에 많은 관심을 기울이지 않을 것입니다.

0

필자는 특히 주석이 혼란스러워지기 시작하면 주석을 피하는 것을 선호합니다. 이 경우에 좋은 오래된 getter와 setters에는 아무런 문제가 없습니다. bean을 스스로 처리해야하는데 그렇게 어렵지 않으므로 주석이 필요합니다.

+0

나는 getters와 setters 및 xml 파일을 가지고 수년간이 오래된 접근 방식을 사용 해왔다. 그러나 새로운 버전의 스프링을 사용하여 주석을 시험해보고 싶습니다. – ashishjmeshram

+0

추가 xml 설정은 복잡성의 또 다른 계층입니다 (날씨가 단순한 지 아닌지, 다른 레이어로 계산됩니다). 자바는 시끄러운 언어 다. 주입을 위해서 setters/constructors는 코드를 더욱 복잡하게 만든다. Java 코드를 변경해야 할 때 XML 파일을 리팩터링하는 IDE를 모르겠습니다. – AR3Y35

관련 문제