스프링 기초_프로젝트

bitna's study note·2022년 8월 6일

스프링

목록 보기
39/54

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" %> 
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글