Spring 주해 @ Component, @ Repository, @ Service, @ Controller, @ Autowired, @ Resource 용법

2768 단어 Spring
전환 하 다https://www.cnblogs.com/duanxz/p/3793982.html
1. Spring 정의 bean, @ Component, @ Repository, @ Service 와 @ Controller
Spring 2.5 에 서 는 @ Component 주석 을 제공 하 는 것 외 에 도 몇 가지 특별한 의 미 를 가 진 주석 을 정 의 했 습 니 다. 각각 @ Repository, @ Service 와 @ Controller 입 니 다.현재 Spring 버 전에 서 는 이 세 개의 주석 과 @ Component 가 같은 효 과 를 가지 고 있 지만 주석 류 의 이름 에서 이 세 개의 주석 이 각각 지구 층, 업무 층, 제어 층 (Web 층) 과 대응 하 는 것 을 쉽게 알 수 있다.현재 이 세 개의 주석 은 @ Component 에 비해 새로운 것 이 없 지만, Spring 은 이후 버 전에 서 특별한 기능 을 추가 할 것 입 니 다.따라서 웹 응용 프로그램 이 전형 적 인 3 층 구 조 를 사용 했다 면 지구 층, 업무 층, 통제 층 에서 각각 @ Repository, @ Service 와 @ Controller 를 사용 하여 분 층 중의 류 를 주석 하고 @ Component 로 비교적 중립 적 인 류 를 주석 하 는 것 이 좋 습 니 다.
  • @ Service 는 업무 층 구성 요 소 를 표시 하 는 데 사 용 됩 니 다. 업무 층 구성 요 소 를 표시 하 는 데 사 용 됩 니 다. bean 을 정의 하 는 데 사 용 됩 니 다. bean 의 클래스 이름 에 따라 이니셜 을 소문 자로 예화 합 니 다. 예 를 들 어 Chinese 는 chinese 로 예화 합 니 다. 이름 을 바 꾸 려 면 @ Service ("당신 이 바 꾼 bean 이름") 입 니 다.
  • @ Controller 는 제어 층 구성 요소 (예 를 들 어 struts 의 action)
  • 를 표시 하 는 데 사 용 됩 니 다.
  • @ Repository 는 데이터 액세스 구성 요소, 즉 DAO 구성 요소
  • 를 표시 하 는 데 사 용 됩 니 다.
  • @ Component 는 구성 요 소 를 가리 키 며 구성 요소 가 분류 하기 어 려 울 때 이 주 해 를 사용 하여 표시 할 수 있 습 니 다.

  • 2. Spring bean 주해 주입 집계
    spring 2.5 는 주석 기반 (Annotation - based) 설정 을 제공 합 니 다. 주석 방식 으로 주입 의존 을 완성 할 수 있 습 니 다.bean 주입 은 * * @ Autowired, @ Resource 를 사용 하여 완성 할 수 있 습 니 다.하지만 그들 사이 에는 차이 가 있다.먼저 살 펴 보 자.
  • @ Resource 는 기본적으로 이름 에 따라 주입 을 조립 합 니 다. 이름 에 맞 는 bean 을 찾 지 못 할 때 만 유형 에 따라 주입 을 조립 합 니 다.
  • @ Autowired 는 기본적으로 유형 에 따라 조립 하여 주입 합 니 다. 이름 에 따라 주입 을 옮 기 려 면 @ Qualifier 와 결합 하여 사용 해 야 합 니 다.후보 빈 의 수가 1 이 아 닐 때 대응 하 는 방법 입 니 다. 기본 적 인 상황 에서 @ Autowired 주석 을 사용 하여 자동 으로 주입 할 때 Spring 용기 에 일치 하 는 후보 빈 의 수 는 하나 여야 합 니 다.일치 하 는 Bean 을 찾 을 수 없 을 때, Spring 용 기 는 BeanCreation Exception 이상 을 던 지고, 최소한 일치 하 는 Bean 을 가 져 야 한다 고 지적 합 니 다.물론 일반적인 경우 @ Autowired 를 사용 하 는 곳 은 Bean 을 주입 해 야 합 니 다. 자동 주입 을 사용 하고 주입 하지 않 는 경우 개발 기 나 테스트 기간 에 만 부 딪 히 기 때문에 @ Autowired (required = false) 는 거의 사용 되 지 않 습 니 다.
  • @ Resource 주 해 는 J2EE 에서 제공 하고 @ Autowired 는 Spring 에서 제공 하기 때문에 시스템 이 spring 에 대한 의존 을 줄 이 고 @ Resource 를 사용 하 는 방식 을 권장 합 니 다.
  • @ Resource 와 @ Autowired 는 필드 나 이 필드 에 표 시 된 setter 방법 을 쓸 수 있 습 니 다
  • @ Autowired 를 사용 할 때 빈 은 @ Service 또는 @ Component 로 주석 을 달 아야 합 니 다
  • 주해 와 전통 적 인 인 인 코딩 방식 으로 이 루어 진 주입 의 다른 용법 은 주의해 야 한다. 예 를 들 어 DAO 실현 류 를 service 실현 류 에 주입 하고 service 의 인터페이스 (service 의 실현 류 가 아 님 을 주의 하 라) 를 action 에 주입 할 때 new 라 는 주입 류 를 주입 하지 마라. spring 이 자동 으로 주입 되 기 때문에 수 동 으로 new 를 사용 하면 오류 가 발생 할 수 있다.
    @Autowired//        spring          studentDao   bean
    //@Qualifier("studentDao")             
    public void setStudentDao(IStudentDao studentDao) {
           this.studentDao = studentDao;
    }
    

    좋은 웹페이지 즐겨찾기