[Spring]Ch8.Service와 DAO 구현_올인원 스프링 프레임워크

2024. 6. 8. 00:14·BackEnd/Spring
 

올인원 스프링 프레임워크

올인원 스프링 프레임워크 작품소개: 기초부터 실무까지 한 권에 담은 올인원 스프링 프레임워크!웹 서비스의 핵심인 스프링 프레임워크의 전체적인 구조와 핵심 이론을 다양한 예제 프로젝트

ridibooks.com

1. 클라이언트 요청을 서버에서 처리하기 

- 최초 사용자의 요청이 발생하면 서버는 컨트롤러의 해당 메서드를 실행하고, 컨트롤러는 서비스를 이용

- 서비스는 데이터베이스 작업에 필요한 DAO를 이용

- 컨트롤러, 서비스, DAO의 작업이 끝나게 되면 서버는 사용자에게 응답을 하는데 이때 JSP 파일을 이용함

 

1) @RequestParam 애너테이션

- @RequestParam을 이용하면 클라이언트가 전송한 데이터를 서버가 받을 수 있음

@Controller
public class MemberController {

    @RequestMapping("/signUpConfirm")
    public String signUpConfirm(@RequestParam String m_id,
                                @RequestParam Integer m_pw,
                                @RequestParam String m_mail,
                                @RequestParam String m_phone) {
  		System.out.println("m_id:"+m_id);
		System.out.println("m_pw:"+m_pw);
		System.out.println("m_mail:"+m_mail);
		System.out.println("m_phone:"+m_phone);
		return "sign_up_ok";
	}

 

 

- @RequestParam 다음에 데이터 타입과 변수명을 명시

- 데이터 타입은 스프링이 자동으로 형 변환

2) VO 객체

- @RequestParam을 이용할 때 데이터의 개수가 많아지는 경우 코드가 길어지는 단점, 이런 경우 VO 객체를 이용

- 스프링에서는 데이터 이름을 이용해서 클라이언트에서 전송된 데이터를 VO 객체의 멤버 필드에 자동으로 할당.

@Controller
public class MemberController {

    @RequestMapping("/signUpConfirm")
	public String signUpConfirm(MemberVo memberVo) {
  		System.out.println("m_id:"+memberVo.getM_id());
		System.out.println("m_pw:"+memberVo.getM_pw());
		System.out.println("m_mail:"+memberVo.getM_mail());
		System.out.println("m_phone:"+memberVo.getM_phone());
		return "sign_up_ok";
	}

 

- 스프링은 MemberVo에서 사용자가 입력한 데이터의 이름과 동일한 멤버 필드를 찾고, 이에 해당하는 setter 메서드를 이용해서 멤버 필드에 데이터를 할당하므로 setter메서드 반드시 명시

 

2. Service Bean 객체 구현

# 서비스 객체 생성과 이용하는 3가지 방법

 

1) 객체 생성 연산자(new)를 이용해서 서비스 객체 생성

@Controller
public class MemberController {
	
MemberService memberService = new MemberService();

 

2) 스프링 설정 파일을 이용해서 스프링 컨테이너에 bean 객체로 생성하고 의존객체 자동주입 방법을 이용

//servlet-context.xml

<beans:bean id="memberService" class="com.kbfg.digi.member.MemberService"/>

 

3) 서비스 클래스에 애너테이션(@Service, @Component, @Repository) 명시하여 스프링 컨테이너에 bean 객체 생성하고 의존 객체 자동 주입 방법을 이용

@Controller
public class MemberController {
	
	@Autowired
	MemberService memberService;
@Service
public class MemberService {
	
	@Autowired
	MemberDao memberDao;
	
	public int signUpConfirm(MemberVo memberVo) {
		System.out.println("[memberService]signUpConfirm()");
		System.out.println("m_id:"+memberVo.getM_id());
		System.out.println("m_pw:"+memberVo.getM_pw());
		System.out.println("m_mail:"+memberVo.getM_mail());
		System.out.println("m_phone:"+memberVo.getM_phone());
		
		memberDao.insertMember(memberVo); //memberVo를 매개변수로 전달함
		return 0;
	}
	
	public MemberVo signInConfirm(MemberVo memberVo) {
		System.out.println("[memberService]signInConfirm()");
		MemberVo signInedMember = memberDao.selectMember(memberVo);
		return signInedMember;
	}
}

- @Service 애너테이션이 빈 객체를 스프링 IoC 컨테이너에 생성

3. DAO Bean 객체 구현

- DAO의 경우 데이터베이스와 통신하는 객체

- DAO는 서비스에서 데이터베이스 작업이 필요한 경우 호출하면 되므로, 서비스 객체에 멤버 필드로 선언하고 @Autowired를 이용해서 의존 객체를 자동 주입

 

 

 

'BackEnd > Spring' 카테고리의 다른 글

[Spring]Ch9.데이터베이스:관리자 회원가입 기능 만들기_올인원 스프링 프레임워크  (1) 2024.06.09
[Spring]web.xml에 한글깨짐현상 방지 filter 태그 추가하기  (0) 2024.06.08
[Spring]Ch7.스프링 MVC를 이용한 웹 서비스 프로젝트_올인원 스프링 프레임워크  (0) 2024.06.07
[Spring]Ch6.@Configuration을 이용한 빈 생성_올인원 스프링 프레임워크  (0) 2024.06.07
[Spring]Ch4.IoC(Inversion of Control) 컨테이너_올인원 스프링 프레임워크  (1) 2024.06.06
'BackEnd/Spring' 카테고리의 다른 글
  • [Spring]Ch9.데이터베이스:관리자 회원가입 기능 만들기_올인원 스프링 프레임워크
  • [Spring]web.xml에 한글깨짐현상 방지 filter 태그 추가하기
  • [Spring]Ch7.스프링 MVC를 이용한 웹 서비스 프로젝트_올인원 스프링 프레임워크
  • [Spring]Ch6.@Configuration을 이용한 빈 생성_올인원 스프링 프레임워크
방카킴
방카킴
김행원의 개발 블로그
  • 방카킴
    방카@Dev
    방카킴
  • 전체
    오늘
    어제
    • 분류 전체보기 (46)
      • Notice (2)
      • FrontEnd (5)
        • Javascript (1)
        • CSS (3)
      • BackEnd (25)
        • Java (1)
        • JSP (4)
        • Spring (19)
        • DB (1)
      • Git (1)
      • AI (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    북리뷰
    agenticai
    AI
    LLM
    Agent
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
방카킴
[Spring]Ch8.Service와 DAO 구현_올인원 스프링 프레임워크
상단으로

티스토리툴바