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);
}