2018. 5. 21. 12:19 개발

Spring 흐름

MemberController -> MemberService -> MemberDAO -> SqlSession -> memberMapper.xml


@Inject

MemberDAO memberDao;


MemberDAO memberDao = new MemberDAOImpl();


위의 두 코드가 같은 의미


public class MemberController {

@Inject

MemberService memberService;

}


// @ModelAttribute : 폼에서 전달된 값을 저장하는 객체

@RequestMapping("member/insert.do")

public String insert(@ModelAttribute MemberDTO dto) {

return "redirect:/member/list.do";

}


@ModelAttribute 생략가능, insert.jsp에서 폼에서 넣긴 값을 받아서 넘기는 것.


public String insert(@RequestParam String userid,

@RequestParam String passwd) {

return "redirect:/member/list.do";

}


// 이런식으로도 사용가능 하지만 @ModelAttribute가 코드의 양을 줄일수 있어


insert.do -> MemberController -> MemberService -> MemberServiceImpl 

-> MemberDAO -> MemberDAOImpl -> memberMapper.xml


service는 계좌이체, 상품구매, 결제 등 제공되는 서비스의 단위


@Transactional

void method(){

memberDao.insertMember(dto);

memberDao.deleteMemberMember(dto.getUserid());

}

// 이렇게 되면 deleteMemberMember하다가 오류가 뜨면 전체가 rollback


<td><a href="${path}/member/view.do?userid=${row.userid}">${row.name}</a></td>


<input name="userid" value="${dto.userid}" readonly>


비밀번호 체크 sql
select count(*) from member
where userid = #{userid} and passwd = #{passwd}

컨트롤러 : @Controller, @RestController
서비스 : @Service 
모델(dao) : @Repository

dto -> json opensource lib
https://www.lesstif.com/pages/viewpage.action?pageId=24445183

servlet-conn
<resources location="/WEB-INF/views/include" mapping="/include/**"></resources>
<resources location="/WEB-INF/views/images" mapping="/images/**"></resources>

base-package = "com.example.spring02"
com.example.spring02 패키지 포함
base-package = "com.example.spring02.*"
com.example.spring02 패키지 제외

com.example.spring02.HomeController.java
com.example.spring02.memo.HomeController.java


<td><fmt:formatDate value="${row.post_date}" pattern="yyyy-MM-dd HH:mm:ss"/></td>


restful 주소 처리시
@RequestMapping("view/{idx}")
public ModelAndView view(@PathVariable int idx, ModelAndView mav) {
mav.setViewName("memo/view");
mav.addObject("dto", memoService.memo_view(idx));
return mav;
}



public interface MemoService {

public List<MemoDTO> list();

public void insert(MemoDTO dto);

public MemoDTO memo_view(int idx);

public void update(MemoDTO dto);

public void delete(int idx);

}

'개발' 카테고리의 다른 글

MemberDTO  (0) 2018.05.21
spring 파일 업로드  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
Garbage Collector  (0) 2018.03.27
TDD와 BDD 차이점  (0) 2018.03.24
Posted by 커다란꼬꼬마

블로그 이미지
커다란꼬꼬마

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.4
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

최근에 올라온 글

최근에 달린 댓글

글 보관함