재밌고 어려운 IT를 이해해보자~!

Data Base Connection Pool 본문

코리아IT핀테크과정

Data Base Connection Pool

언제나즐거운IT 2024. 3. 4. 23:43

DBCP란?

수많은 연결들을 관리해주는 객체

1. MemberDAO02 with 템플릿 패턴
2. RowMapper 클래스 작성
3. 템플릿 의존주입을 위한 템플릿 new 
=> <bean>

트랜잭션도 어드바이스로 보기 떄문에 어드바이스를 등록해준다.

조작해줄수가 없기 떄문에 xml에 저장해야한다. xml을 안쓸 수 가 없다.
등록해놓은 객체 txManager~

read-only이기 때문에 

트랜잭션은
개념정리를 잘 해두자!

aPointcut 에 txAdvice를 aspect처리해줘

특이한건 aop:aspect 대신
aop:advisor 를 사용

advisor == aspect == 위빙처리해달라, == 결합

aspect -> 개발자가 만든것
advisor는 설정으로...?

★ 트랜잭션★

하나의 비지니스메서드내에서 (기본단위)
오류가발생했기때문에
한번은 성공 한번은 실패 했을때
하나만 DB에 저장되는게 아니라
둘다 들어가지 않는다.
commit이 되지않고 rollback 된다.

 

==================================


Transaction 부분 별도메모!


신입과 2~3년차까지는 transaction을 거의 건드리지 않을것임

transaction을 설정해주는 친구를 transaction  manager라고 함

txManager는 세터주입을 필요로하는친구이다.

DBCP를 사용

transaction을 공통로직으로 간주

txAdvice를 등록해야함 => <tx:advice>

외부로부터 받아오기때문에 클래스를 조작할 수 없으므로 applicationContext.xml에서 조작해야함

select은 transaction은 read-only를 걸어놓음으로써 별도의 transaction을 추가x

<aop:config>를 사용하여 aspect처리를 할 예정

기존에 사용하던 aPointcut과 txAdvice를 위빙처리해달라고 요청

특이한점 : aspect대신 advisor를 사용  advisor == aspect == 위빙처리해달라. == 결합
advisor는 설정 advice로 예측
aspect는 개발자가 등록한 advice로 예측

public boolean insert(MemberDTO mDTO) {
      mDAO.insert(mDTO); // 성공
      return mDAO.insert(mDTO); // 실패
      // 하나의 비즈니스 메서드 자체가 안됐기 때문에 처음으로 rollback한다.(transaction의 기본단위가 CRUD이기 때문이다.)
   }
// 하나의 비즈니스 메서드 자체가 안될경우 때문에 처음으로 rollback한다.(transaction의 기본단위가 CRUD이기 때문이다.)

트랜잭션은
개념정리를 잘해두자 중요하다!

 

SprintMVC 구조설명

스프링에서는 FC가아니라 DispatcherServlet이라한다!!!!!!!!!!!

1. FC == DS
Servlet
스프링 컨테이너는 POJO만 new 가능하니까 
서블릿 컨테이너(톰캣,웹 서버)로 new
-> .xml(설정 파일)이 필요

사용자(브라우저, Client)
 요청
요청정보를 FC(DS)에서 받아서
 요청정보를 꺼낸다.
요청에 맞는 Action(Controller) 을 수행하는데,
이때 활용하는게 HandlerMapper (자바)

Action을 수행하면
어디로(경로)
어떻게 (포워드 VS 리다이렉트) 가야하는지 전달
+ 요청한 정보와 함께(data,datas,memberInfo,list 등...)
ActionForward를 썼지만,
Spring에서는 VR를 사용
output을 토대로 응답


프론트컨트롤러제작 -> 서블릿 컨테이너
어노테이션 없음 XML로 대신설정 (서블릿 컨테이너인 톰캣의 설정파일)

멤버변수로 핸들러매핑이라는게 있는데
얘가 액션을 가져온다 스프링에서는 Controller라고 부름
해당 컨트롤러는 인터페이스고 
아웃풋은 String이다. String인데도 불구하고 redirect forwrard가 가능한건 ViewResolver 덕분이다
요 친구가 마지막에 어떤 액션인지 인지해서 처리를 한다.

스프링에서는 init-method="init()"으로 처리 생성자 사용 X

init부분 -> 생성자새팅이아닌 init()으로 세팅 

핸들러매핑 - 액션이 controller로 변했다 외엔없음~
LoginController -> 확인해보면 Actionforward는 사라지고 반환이 String이된다. redirect -> 리다이렉트 아무말도없으면 default는 forward

MainController가보자 

return "main" ; // 포워드 + main.jsp 인데 
ViewResolver 에서 prefix suffix를 붙일 수 있는데
만약 요청사항에 .do가 없으면 .jsp가 자동으로 붙는다 

 

 

 

'코리아IT핀테크과정' 카테고리의 다른 글

Spring 궁금증 정리  (0) 2024.03.06
Spring 프레임워크 구조 Update (버전별 정리)  (0) 2024.03.05
AOP(Aspect-Oriented Programming)  (2) 2024.02.29
xml, annotation(@)  (4) 2024.02.28
스프링 설치  (0) 2024.02.27
Comments