티스토리 뷰

MemberController MemberService MemberDAO
@Controller
public class MemberController {
private MemberService ms;

@RequestMapping(value="/insert")
public String memberInsert() {
ms = new MemberService();
ms.insert();
return "member/insert";
    }
}
public class MemberService {
private MemberDAO dao;

public void insert() {
dao = new MemberDAO();
dao.insert();
    }
}
public class MemberDAO {

public void insert() {
System.out.println("회원정보를 저장했습니다.");
    }
}

위의 부분들에게 new 생성자를 사용하지 않고 어노테이션을 사용하는 방법이 있습니다.

바로 Autowired와 Component입니다.

 

@Component해당 클래스를 빈으로 등록해줍니다.

<bean class =com.care.MemberDAO" id="dao> 의 의미이기도 하고 

MemberDAO dao = new MemberDAO의 의미이기도 합니다.

*스프링에서는 root-context.xml에서 bean을 만들어줄 수 있습니다.

 

 

@Autowired자동 주입 어노테이션으로 타입을 기준으로 bean을 주입합니다.

*만약 같은 타입의 bean이 2개 이상 있을 경우 이름으로 주입해줍니다.

@Autowired은 getBean("memberDAO",MemberDAO.class)와 같은 의미입니다.

 


MemberController.java

package com.care.mvc_ex02;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MemberController {
	@Autowired
	private MemberService ms;

	@RequestMapping(value="/insert")
	public String memberInsert() {
		ms.insert();
		return "member/insert";
	}
}

@Autowired
private MemberService ms; 의 @AutowiredMemberService라는 자료형의 빈을 주입하라는 의미입니다.


MemberService.java

package com.care.mvc_ex02;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component
public class MemberService {
	@Autowired
	@Qualifier("test1DAO")
	private MemberDAO dao;
	
	public void insert() {
		dao.insert();
	}	
}

@Component
public class MemberService { 에서 @ComponentMemberService 클래스를 빈으로 등록하란 의미입니다.

<bean class="com.care.mvc_ex02.MemberDAO" id="test1DAO"/>

저는 지금 root-context.xml에 위의 코드를 입력하여 MemberDAO인 빈을 하나 더 만들었습니다.

그렇다면 같은 타입이 bean이 2개 있다는 건데 그때 원하는 bean을 @Qualifier("id명")을 해주어 선택해줍니다.

 

@Component
public class MemberService { 여기서 @Componentdao = new MemberDAO();의 역할을 해주었습니다.

 

@Autowired
@Qualifier("test1DAO")
private MemberDAO dao; 여기에서 @Autowired자료형을 기분으로 bean을 주입, 같은 타입의 bean이 두개있으므로 @Qualifier("test1DAO")id가 test1DAO인 bean을 주입하라는 뜻입니다.

 


MemberDAO.java

package com.care.mvc_ex02;

import org.springframework.stereotype.Component;

@Component
public class MemberDAO {

	public void insert() {
		System.out.println("회원정보를 저장했습니다.");
	}
}

@Component
public class MemberDAO { 여기서는 @Component만 설정해주면 되어 MemberDAO클래스를 빈으로 등록했습니다.

 

 

 

 

 

 

 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함