resource 와 autowired

spring 은 자신 이 정의 한 @ Autowired 주 해 를 지원 할 뿐만 아니 라 JSR - 250 규범 에 의 해 정 의 된 주 해 를 지원 합 니 다. 각각 @ Resource, @ PostConstruct 와 @ PreDestroy 입 니 다.@ Resource 의 역할 은 @ Autowired 에 해당 합 니 다. @ Autowired 는 by Type 에 따라 자동 으로 주입 되 고 @ Resource 는 기본적으로 by Name 에 따라 자동 으로 주입 되 는 것 입 니 다. @리 소스 는 두 가지 속성 이 비교적 중요 합 니 다. name 과 type 으로 나 뉘 는데 Spring 은 @ 리 소스 주해 의 name 속성 을 bean 의 이름 으로 해석 하고 type 속성 은 bean 의 유형 으로 해석 합 니 다.따라서 name 속성 을 사용 하면 by Name 의 자동 주입 정책 을 사용 하고 type 속성 을 사용 할 때 by Type 자동 주입 정책 을 사용 합 니 다.name 도 지정 하지 않 고 type 속성 도 지정 하지 않 으 면 반사 체 제 를 통 해 by Name 자동 주입 정책 을 사용 합 니 다.@ Resource 조립 순서 1. name 과 type 을 동시에 지정 하면 Spring 컨 텍스트 에서 유일 하 게 일치 하 는 bean 을 찾 아 조립 하고 찾 지 못 하면 이상 을 던 집 니 다. 2. name 을 지정 하면 컨 텍스트 에서 이름 (id) 이 일치 하 는 bean 을 찾 아 조립 하고 찾 지 못 하면 이상 을 던 집 니 다. type 을 지정 하면컨 텍스트 에서 형식 이 일치 하 는 유일한 bean 을 찾 아 조립 합 니 다. 찾 을 수 없 거나 여러 개 를 찾 으 면 이상 이 발생 합 니 다. 4. name 도 지정 되 지 않 고 type 도 지정 되 지 않 으 면 자동 으로 by Name 방식 으로 조립 합 니 다.일치 하지 않 으 면 원본 형식 으로 되 돌아 가 일치 하고 일치 하면 자동 으로 조립 합 니 다.
1、 @Autowired 와 @ Resource 는 bean 을 조립 하 는 데 사용 할 수 있 습 니 다. 필드 에 쓰 거나 setter 방법 에 쓸 수 있 습 니 다.
2、 @Autowired 는 기본적으로 유형 별로 조립 합 니 다 (이 주 해 는 업 스프링 에 속 합 니 다). 기본 적 인 상황 에서 의존 대상 이 존재 해 야 합 니 다. null 값 을 허용 하려 면 required 속성 을 false 로 설정 할 수 있 습 니 다. 예 를 들 어 @ Autowired (required = false). 만약 에 우리 가 이름 을 사용 하려 면 @ Qualifier 주 해 를 결합 하여 사용 할 수 있 습 니 다. 다음 과 같 습 니 다.
1
2 @Autowired () @Qualifier ( "baseDao" ) private BaseDao baseDao;
3. @ Resource (이 주 해 는 J2EE 에 속 합 니 다) 는 기본적으로 이름 에 따라 조립 합 니 다. 이름 은 name 속성 을 통 해 지정 할 수 있 습 니 다. name 속성 이 지정 되 지 않 으 면 주 해 를 필드 에 쓸 때 기본 으로 필드 이름 을 가 져 와 설치 이름 을 찾 습 니 다. 주 해 를 setter 방법 에 쓰 면 기본 으로 속성 이름 을 가 져 와 조립 합 니 다.이름과 일치 하 는 bean 을 찾 을 수 없 을 때 만 유형 에 따라 조립 합 니 다.그러나 주의해 야 할 것 은 name 속성 이 지정 되면 이름 에 따라 만 조립 된다 는 것 이다.
1
2 @Resource (name= "baseDao" ) private BaseDao baseDao;
@ Autowired 는 유형 에 따라 자동 으로 조립 됩 니 다.Spring 컨 텍스트 에 UserDao 형식의 bean 이 한 개 이상 존재 할 때 BeanCreation Exception 이상 을 던 집 니 다.Spring 컨 텍스트 에 UserDao 형식의 bean 이 존재 하지 않 으 면 BeanCreation Exception 이상 을 던 집 니 다.우 리 는 @ Qualifier 와 @ Autowired 를 결합 하여 이 문 제 를 해결 할 수 있 습 니 다.다음 과 같다.
 
 
@Autowired   
  • @Qualifier("userServiceImpl")   

  • public IUserService userService;
    혹은   
    @Autowired   
  • public void setUserDao(@Qualifier("userDao") UserDao userDao) {   

  •     this.userDao = userDao;   
  • }  

  • 이렇게 하면 Spring 은 id 를 찾 아 userServiceImpl 과 userDao 의 bean 을 조립 합 니 다.
     
    @ Autowired / / 기본 값 은 type 에 따라 @ Qualifier ("cusInfoService") / / 보통 @ Autowired () 의 수식 용 @ Resource (name = "cusInfoService") / / 기본 값 은 name 에 따라 주입 되 며, name 과 type 속성 을 통 해 선택적으로 주입 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기