본문 바로가기
Study/중앙정보처리학원과정

Spring의 Bean객체 설정방법

by 얏옹이 2023. 2. 8.
반응형

스프링은 매번 중복으로 생성되는 객체를 따로 별도로 구분할수있다. Bean을 이용하여 DTO나 Service 클래스같은 객체 생성이 반복되는 코드들을 Bean으로 설정하고. 필요할때 가져다 쓰기만 하면되는것이다.

 

Spring 프로젝트를 생성하였다면. Servlet-Context.xml 파일이 있을것이다.

 

 

이곳에서 각종 설정들을 추가해줄수있는데.

 

	<beans:bean id="빈id" class="빈으로등록할 클래스의 전체경로(패키지경로.클래스명)"></beans:bean>

	
	<beans:bean id="empDAO" class="com.mycom.app.emp.repository.EmpDAOImpl"></beans:bean>

 

이러한 문법으로 등록을 해줄수 있다. empDAO라는 클래스를 bean으로 등록하기위해서 class에 전체경로를 적어주었고

 

id에 empDAO를 정해주었다. 이렇게 등록을 해주면 Spring에서 프로젝트를 읽어올때 해당 EmpDAOImpl의 객체를 알아서

 

생성해준다

 

EmpDAOImpl empDAO = new EmpDAOImpl();

 

즉, 이와같은 코드들을 각 서비스마다 호출해줄 필요가 없는것이다. 등록을 마쳤다면 사용을 하러가자.

 

사용법은 간단하다. Field 영역에 해당 클래스를 선언하고, @(Annotaion)을 이용하여 @Autowired만 붙여주면된다.

 

package com.mycom.app.emp.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;

import com.mycom.app.emp.EmpDTO;
import com.mycom.app.emp.repository.EmpDAOImpl;

//service 역활을 하는 클래스
@Service
public class EmpServiceImpl implements EmpService{
	
	@Autowired
	private EmpDAOImpl empDAO;

	@Override
	public EmpDTO getEmpDetaile(String id) {
		return empDAO.getEmpDetail(id);
	}

	@Override
	public List<String> getEmpName() {
		return empDAO.getEmpName();
	}

	@Override
	public List<EmpDTO> getEmpList() {
		return empDAO.getEmpList();
	}
	
	
}

 

Service 클래스에서 DAO를 호출하기때문에 @Autowired를 이용하여 객체를 생성해주고, 해당 객체에서 메소드를 호출해 각각 역활을 수행해준다.

 

 

반응형