새소식

인기 검색어

JAVA

@Resource, @Autowired, @Inject

  • -

@Resource 어노테이션


Java에서 지원하는 어노테이션으로 프레임워크에 종속적이지 않아 많이 사용한다.(추천)

Bean을 생성해주며 싱글톤 패턴이 자동으로 적용이 된다.

name으로 DI를 가능케하며 name 속성의 이름을 기준으로 찾고 없다면 Type으로 Type이 없다면 @Qualifier 의 유무를 찾아 그 어노에이션이 붙은 속성에 의존성을 주입한다.

 

사용할 수 있는 위치

멤버변수, setter 메소드

 

강제 연결 방식

강제 연결을 하는 이유로는 같은 이름의 Bean이 있거나 특정 Bean을 사용하기 위해서 강제로 연결한다.

@Resource(name="title")

 

 

@Autowired


 스프링 프레임워크에서 지원하는 어노테이션이며 프레임워크에 종속적이다 그렇기에 추천하지는 않는다.

그 이유로는 스프링 프레임워크를 쓰다 다른 프레임워크로 수정할 경우에 많은 리소스가 발생하기에 다 바꿔줘야한다.

@Autowired 또한  Bean을 생성해주며 싱글톤 패턴이 자동으로 적용이 된다.

 

 Type으로 DI를 가능케하며 만약 Type이 없다면 @Autowired에 위치한 속성명이 일치하는 Bean을 컨테이너에서 찾고 없다면 @Qalifier 어노테이션의 유무를 찾아 그 어노테이션이 붙은 속성에 의존성을 주입하며 @Autowired는 확실한 의존성을 보장한다.

 

사용할 수 있는 위치

멤버변수, setter 메소드, 생성자, 일반 메소드에 적용

 

강제 연결 방식

강제 연결을 하는 이유로는 같은 이름의 Bean이 있거나 특정 Bean을 사용하기 위해서 강제로 연결한다.

@Autowired

@Qalifier("title")

 

 

 

@Inject


 java에서 지원하는 어노테이션이며 특정 프레임 워크에 종속적이지 않아 사용해도 좋다.

name으로 DI를 가능케하는 점에서 @Resource랑 비슷하지만 Type으로 의존성을 주입한다는 점에서 다르다.

의존성 주입 방식은 Type이 없다면 @Qualifier 어노테이션 유무를 찾고 없다면 name으로 찾는다.

 

@Inject를 사용하기 위해서는 maven이나 gradle에 javax 라이브러리 의존성을 추가해야한다.

 

사용할 수 있는 위치

멤버변수, setter 메소드, 생성자, 일반 메소드에 적용 가능

'JAVA' 카테고리의 다른 글

extends, implements  (0) 2023.02.07
@Component  (0) 2023.02.07
queryForObject, queryForList  (0) 2022.10.18
Map  (0) 2022.10.18
JavaBean  (0) 2022.10.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.