방카@Dev
[Spring]Ch8.Service와 DAO 구현_올인원 스프링 프레임워크 본문
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 |