8월 6일
파일정리하다가 공부겸 프로젝트구현중인 부분 날려서
복습겸 스프링 게시판 CRUD부터 다시 하는중....
같은걸 여러번 반복하는게 지치긴 하는데, 반복할수록 구조나 전체적인 흐름이해력이 좋아져서...걍 복습겸 응용해서 기능 한개 만듬...
시험삼아 게시판 CRUD 응용하여 회원가입 기능 만들어봄
(1)MemberMapper 인터페이스 작성하기
package com.keduit.mapper;
public interface MemberMapper {
void insert(MemberVO vo);
}
(2)MemberMapper.xml작성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keduit.mapper.MemberMapper">
<insert id="insert">
INSERT INTO t_member(userid,userpw,username)
VALUES(#{userid},#{userpw},#{username})
</insert>
</mapper>
(3)MemberMapperTest 작성해서 테스트해보기
package com.keduit.mapper;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class MemberMapperTest {
@Autowired
private MemberMapper member;
@Test
public void testInsert () {
log.info("Member testInsert............입니다용");
MemberVO vo =new MemberVO();
vo.setUserid("user90");
vo.setUserpw("1234");
vo.setUsername("이름이지롱");
member.insert(vo);
}
}
(4)MemberService 인터페이스 작성
package com.keduit.service;
public interface MemberService {
void memberRegister(MemberVO vo);
}
(5)MemberServiceImpl 작성하기(MemberService 구현받기)
package com.keduit.service;
@Service //controller처럼 빈으로 등록됨
@Log4j
@RequiredArgsConstructor //final로 선언한 인스턴스에 대해서 자동으로 주입을 해죠
public class MemberServiceImpl implements MemberService{
private final MemberMapper mapper;
@Override
public void memberRegister(MemberVO vo) {
log.info("memberRegister...........부분입니다.");
mapper.insert(vo);
}
}
(6)MemberServiceTest 작성해서 테스트해보기
package com.keduit.service;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class MemberServiceTest {
@Autowired
private MemberService service;
@Test
public void testMemberRegister() {
MemberVO vo= new MemberVO();
vo.setUserid("user91");
vo.setUserpw("1234");
vo.setUsername("이름이당가");
service.memberRegister(vo);
}
}
(7)MemberController 작성하기
package com.keduit.controller;
@Controller
@RequiredArgsConstructor // 대신해서 @AllArgsConstructor를 쓸수 있음.인스턴스를 주입할때 쓰임
@RequestMapping("/member/*")
@Log4j
public class MemberController {
private final MemberService service;
@GetMapping("/signup")
public void signup() {
log.info("Get방식 signup...........");
}
@PostMapping("/signup")
public String memberRegister(MemberVO vo,RedirectAttributes rttr) {
log.info("Post방식 signup...........");
service.memberRegister(vo);
rttr.addFlashAttribute("result",' ');
return "redirect:/board/list";
}
}
(8)signup.jsp 작성하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@include file="../includes/header.jsp" %>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Member SignUp</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Member SignUp
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<form action="/member/signup" method="post">
<div class="form-group">
<label>아이디</label>
<input class="form-control" name="userid" >
</div>
<div class="form-group">
<label>비밀번호</label>
<input class="form-control" name="userpw">
</div>
<div class="form-group">
<label>이름</label>
<input class="form-control" name="username" >
</div>
<button type="submit" class="btn btn-info">가입하기</button>
<button type="reset" class="btn btn-default">다시작성하기</button>
</form>
</div>
<!-- /.panel-body -->
</div>
<!-- /.panel -->
</div>
<!-- /.col-lg-12 -->
</div>
<%@include file="../includes/footer.jsp" %>