program tip

@Repository 및 @Service 스프링 주석

radiobox 2020. 11. 1. 17:30
반응형

@Repository 및 @Service 스프링 주석


@Repository@Service 를 사용하면 어떤 이점이 있습니까?

구성 요소 스캔 등에 대해 말하지 마십시오. 추가 혜택이나 기능이 있으면 기대하고 있습니다.

사용하지 않으면 어떻게 되나요? 내가 놓친 것은 무엇입니까?


몇 가지 이유가 있습니다.

  1. 보다 구체적인 주석으로 포인트 컷을 대상으로 지정하는 것이 더 쉽습니다. 마십시오 하지 이의 유용성을 과소 평가!
  2. @Repository주석은 함께 몇 가지 추가 기능을 수행합니다 : 그것은 예외가되게 로 싸서 DataAccessException .
  3. @Service주석은 향후 추가적인 의미를 얻을 수 있지만, 아직 일이 아니에요 ...

@Repository(스프링 2.0에서 소개) 주석과 @Service(스프링 2.5에서 소개) 주석의 전문입니다 @Component주석.

@Repositoryor @Serviceover 를 사용하는 주요 이점은 @Component예를 들어 .NET으로 주석이 추가 된 모든 클래스를 대상으로하는 AOP 포인트 컷을 작성하는 것이 쉽다는 것입니다 @Repository.

또한 특수 주석은 애플리케이션 계층을 명확하게 구분하는 데 도움이됩니다 (표준 3 계층 애플리케이션에서).


저는 Spring이 이러한 Component 어노테이션을 추가 할 때 염두에 둔 두 가지가 있다고 생각합니다.

  1. 해당 하위 구성 요소로 주석이 달린 모든 객체에서 점 절단을 지정하는 데 사용할 수 있습니다. (모든 @Repository 또는 모든 @Service 포인트 컷)
  2. 나는 Spring이 또한 그들이 미래의 기능을 추가 할 것이라고 언급했다고 생각한다. (나는 이것에 대한 인용이 없습니다. 어딘가에서 읽은 것 같습니다)

TDD를 사용 하는 경우 정의한 모든 @Autowired 구성 요소를 완전히 주입하는 이점이 있으므로 @Services를 신중하게 디자인하는 것이 좋습니다 (물론 테스트).

예를 들어 @Controller에 직접 기능을 구현할 수 있지만이 경우 테스트가 더 어려워지고 모든 모의 요소를 정의해야합니다 (springframework 3.1에서는 훨씬 더 쉽지만 여전히 "나쁜 디자인").

참고 URL : https://stackoverflow.com/questions/6256331/spring-annotations-repository-and-service

반응형