Spring 빈 설정 : Annotation으로 의존성 주입하기

롱롱·2022년 10월 30일
0

spring

목록 보기
3/4
post-thumbnail

빈으로 사용될 클래스에 annotation을 달아주면 자동으로 빈이 등록됩니다.


1. Annotation으로 빈을 설정할 경우 유의할 점

Annotation으로 빈을 설정할 경우, 반드시 component-scan을 설정해야 합니다.

<context:component-scan base-package="com.test.hello.*"/>

위 코드는 해당 base-package에서 만약 annotation @Component가 정의된 클래스가 있다면,
<bean class="패키지명.class명">으로 관리하겠다는 뜻입니다.


2. Stereotype Annotation 종류

@Repository

Data Access Layer의 DAO 또는 Repository 클래스에 사용합니다.

@Service

Service Layer의 클래스에 사용합니다.

@Controller

Presentation Layer의 Controller에 사용합니다.

@Component

위 세 가지 layer 구분에 적용하기 어려운, 일반적인 경우에 사용합니다.


3. 빈 의존 관계를 설정하는 Annotation 종류

@Resource

타입에 맞춰서 연결합니다.
멤버변수와 setter method에 사용 가능합니다.

@Component
public class BookServiceImple implements BookService {
  
  @Resource(name="bdao")
  BookDao bookDao;

}

@Autowired

타입에 맞춰서 연결합니다.
멤버변수, setter, constructor, 일반 method에 사용 가능합니다.

@Autowired
public BookServiceImpl(@Qualifier("bdao") BookDao bookDao, @Qualifier("adao") AdminDao adminDao) {
	super();
  	this.bookDao = bookDao;
  	this.adminDao = adminDao;
}

동일한 타입인 bean이 여러 개 있을 경우,
@Qualifer("name")을 사용하여 식별합니다.

@Inject

이름에 맞춰서 연결합니다.
멤버변수, setter, constructor, 일반 method에 사용 가능합니다.

@Inject
public BookServiceImpl(BookDao bookDao) {
	super();
  	this.bookDao = bookDao;
  	this.adminDao = adminDao;
}

0개의 댓글