12.31

0

jsp

목록 보기
27/39

<오늘>
트랜젝션 단점 해결할 수 있는 리스너

insertBoard, insertAttaches
-각각 커밋하면 완전히 다른 트랜젝션으로 돌아감

만약 보드 인서트 됬는데 첨부파일 등록하다가 오류나면? - 이건 게시글 등록 실패한것

트랜잭션 - 절대로 쪼갤 수 없는 단위
게시글 등록, 첨부파일 등록되야 끝나는 것. 쪼갤 수 없음 - 원자성

session이 open되면 트랜잭션이 시작, close되면 트랜잭션 종료

마이바티스
파라미터 타입은 반드시 하나밖에 못줌
-> mapper proxy 사용 못함.

트랜잭션 관리하려면 인터페이스와 mapper의 시그니처 달라지니까 아이바티스 처럼 쓰면 됨.

트랜잭션 controller에서는 관리안함.
prodInsert에서

saveFile때문에 b.l에서 못했음.
웹리소스라서.
model layer는 웹과는 전혀 상관없는 애들

-> 리스너로 해결

saveFolderUrl = "" ~이 코드 상품 다 똑같음
매번 돌릴 필요x
서버 시작 됬을때.
지금은 서블릿 사용 안해서 init 콜백 설정 못해서 여기다 못함.
그럼 서버 시작됬다는 이벤트 어떻게 처리할거냐? - 리스너

컨텍스트가 시작이됬다

얘 상속받아서 추가적인거 구현

어떤 컴포넌트에서 이벤트가 발생했을떄 이벤트 처리
-언어가 달라지든 다 똑같음
1. 이벤트 타겟 결정
2. 타켓을 대상으로 처리하고 싶은 이벤트 결정
3. 이벤트를 처리할 수 있는 핸들러 구현
4. 타켓에 이벤트 핸들러 부착(onclick). 이런 핸들러가 이벤트 처리할 수 있다는거 알려주는것

버튼 클릭했을때 alert창

  1. 타겟 - 어플리케이션
  2. 이벤트 - 시작
  3. 핸들러구현 - 리스너 사용
  4. 부착단계 - web.xml에 등록

각자 생명주기있고 스코프 있는 애들
lifeCycle - 언젠간 시작되고 종료된다.

이렇게 구현할 수도 있는데 지금 우리 어플리케이션에서 돌아가고 있는 리스너 있어서 extends해서
걔가 하는 역할에 우리꺼 하기위해
->super불러야 타일즈리스너가 하던일 그대로 함.

원래 있던거 없애고 우리가 만든거

이벤트 발생하면 이벤트 객체 받음 - 그 안에는 타겟에 대한 정보 들어있으니까

어느 레이어를 기준으로 트랜잭션 관리할지 기준 서있어야.
로직 내가 끌고갈 수 있어야.

마이바티스 - persitence framework
b.l이 마이바티스 의존하는 상황 생김
2. 중복코드 발생

-> 스프링 쓰면 b.l에서 빠져나감(하지만 어떻게 처리했는지 기억하고 있어야됨. 실무 나가서 스프링 안쓸수도 있으니까)

AOP(관점지향방법론)
이 2가지 문제점 해결됨

!기억!
트랜잭션 관리하는 방법.구조
이때 발생하는 문제점 2가지

세션에 하면 30분뒤 사라짐, 서버 무거워짐
응답데이터 안에 몇번추천했다는 정보 쿠키에 저장해서 내보낸다.


0개의 댓글