@ Autowired @ Resource @ Qualifier 주해 의 차이

오늘 막 졸업 한 어린이 가 나 에 게 이 문 제 를 물 었 다. 글 을 보고 잘 모른다 고 말 한 후에 나 는 찾 아 보 았 는데 모두 가 이 몇 개의 주해 에 대한 해석 이 비교적 공식 적 이라는 것 을 발견 했다.
@ Autowired 는 spring 이 고, @ Resource 는 JSR - 250 입 니 다. @Autowired 는 by Type 에 따라 자동 으로 주입 되 고 @ Resource 는 기본적으로 by Name 에 따라 자동 으로 주입 됩 니 다.
통속 적 이 고 이해 하기 쉽 도록 간단하게 말 하 겠 습 니 다.
Service:
public interface IKingService {
    public void saveXMan(List result);
}

public interface IQueenService {
    public void saveHulk(List result);
}

Impl:
@Service(“ironMan”)
public class IronManKingServiceImpl implements IKingService {    
    @Override
    public void saveXMan(List result) {
       // 
    }
}
@Service(“spiderMan”)
public class SpiderManKingServiceImpl implements IKingService {
    @Override
    public void saveXMan(List result) {
       // 
    }
}
@Service
public class SpiderManKingServiceImpl implements IQueenService{
    @Override
    public void saveHulk(List result) {
       // 
    }
}
Controller:
@Autowired
IQueenService queenService;    //    

@Autowired
@Qualifier("SpiderManKingServiceImpl")
IKingService kingService;    //    

@Resource
IQueenService queenService;    //    

@Resource(name="spiderMan")
IKingService kingService;    //    

@Resource(name="SpiderManKingServiceImpl")
IKingService kingService;    //    

@Autowired
IKingService kingService;    //  :  type      

@Autowired
@Qualifier("spiderMan ")
IKingService kingService;    //  :Qualifier       ,      

@Resource
IKingService kingService;    //  :     ,        

1、@Autowired byType 。
3、 @Autowired @Qualifier  ,
2、@Resource   byName   byType ,   byName , ,  byType 。

좋은 웹페이지 즐겨찾기