본문 바로가기
🌈 백엔드/스프링 프레임워크

객체자동등록 후 객체자동연결 @Autowired / @ Resource

by 개발자 알마 2023. 9. 1.
반응형

 

 

[1] 객체 수동연결


(1) 객체 수동 연결 

 

 

 

 

[3] 객체 자동연결 @Autowired


 

(1) @Autowired 특징  

 

  • 인스턴스변수 iv  , setter , 참조형 매개변수를 가진 생성자 또는 메서드에 적용한다 
  • 스프링에서 Bean 인스턴스가 생성 된 후 @Autowired를 설정한 메서드가 자동으로 호출되고 인스턴스가 자동으로 주입된다 (DI) 
  • Spring container에서 타입으로 bean을 검색해서 참조 변수에 자동으로 주입한다
  • 검색된 빈이 n개이면 그 중에 참조변수와 이름이 일치하는것을 주입한다
  • 생성자의 경우 생략 가능하다. 디폴트 생성자가 있다면 생략하지 않는것이 좋다. 
  • 인스턴스 변수에 일일이 연결하는 것보다 매개변수를 이용하는것이 더 좋다
  • by Type 으로 빈을 검색한다 

 

(2)@Autowired 사용법

  • 인스턴스 변수형에 사용하기 

 

 

  • 매개변수를 가진 생성자에 사용하기 

 

 

 

  • setter에 사용하기 

 

 

(3) @Autowired 예외발생 

 

찾으려는 대상이 변수일때 , 찾은 Bean의 갯수는 1개만 있어야한다 

찾으려는 대상이 배열일때  찾은 Bean의 갯수는 1개 이상이다. 

@Autowired(required=false)일때  Bean의 갯수는 0개 이상이다. 

 

반대로 조건이 맞지 않다면 예외가 발생한다. 

 

(4) @Autowired 적용하기 

 

 

 

[4] 객체 자동 연결@Resource


(1) @Resource 특징 

스프링 컨테이너인 map에 저장된 객체의 iv 중에 @Resource가 붙어 있으면

map에서 iv의 이름(byName)에 맞는 객체를 찾아서 객체의 주소를 iv에 저장하여 연결한다

by Name 으로 찾아서 key를 통해 value 를 찾아서 연결하는것

 

(2)@Resource 사용법

 

  • 인스턴스 변수형에 사용하기 
  • 생략이 가능하다 

 

  • 이름을 설정할수 있다 

 

 

(3) @Resource 예외발생 

 

일치하는 이름의 bean이 없으면 예외가 발생한다.

 

(4) @Resource 적용하기 

 

 

 

[5] 객체 자동 등록 및 연결 연습


 

반응형

댓글