junit 사용을 위해서




-> 어제 dependency 남아있는것 : logback하고 Slf4j가 classic에는 포함되어있음
-> 지워도 된다

-> 지워도 된다




-> spring에서 다뤄보지않은 신규개념임




-> 태그로만들어주면 원하는대로 custermizing하는데 제한이 따름
-> 패턴을 layout이라는 개념으로 바꾸기
-> layout을 통해서 작업하기!!

-> 패턴으로 출력을 안만들고 자바로 출력을 만드는 방식 : 조건에 따라 출력형태를 다양하게 만듦
-> class 추가하고 class layout 출력형태로 바꾸는것 해보기

















-> pattern 지우고 layout으로 바꾸기

-> 찍는 방법을 pattern대신에 자바로 연결함

-> 다지우기





-> 인코더 종류 바꾸기!!(복붙해서가져가기)


---> 로그 바꿔봄

-> change




-> 5.3.3 변수처리

-> Maven update하기

-> 우리가 만든 class는 component붙이는 방식이 편함

-> bean태그아니면 @bean 으로 객체생성해야함
-> 자바로 만들어야 boot에서도 가져다쓰기 편함



-> 2개 bean이 있어야 함
-> jdbc template제작할때 :



-> class driver이름 복붙

-> datasource넣어주세요


-> jdbcconnection 안씀

-> 주입할 수 있음

-> 쿼리문만 빼고 전부 out 시키기

-> final 전부 가져다 붙이기


-> query문 처음에 전달하고 preparedstatement에 ?값 채워주는 코드만 처리하는 코드

-> interface는 New를 할 수 없음
-> interface를 직접 구현하면 new할 수 있음

-> 내부에 구현체를 넣는방식

-> PreparedStatement를 사용할 수 있게 매개변수로 제공함

-> 물음표의 값 채워주는 것만 하면됨

-> update도 ps값 채워주는 것이 전부임
-> 익명 inner type으로 추가해서 내부에 익명메소드 구성해서 넣을 수 있게 하면됨
-> insert,update,delete 모두 똑같음



-> (가로)안에 class전달해줘야함
bean property가 객체 속성이니까 어떤 객체에 row 값을 database행을 저장할것인가?/

-> contactdto에 담음


-> ...(말줄임표)는 한개를 전달하든 두개를 전달하든 .. 주고싶은 만큼 주면 됨




-> 수정,등록,삭제 모두 성공함(어떻게 dao바뀌는지 아는가? 부담가지지 않고 듣기!!)
-금요일 평가 : 팀 프로젝트 의견을 받을 에정임
공통로직을 한번만 작성하지 말고

-> 반복적으로 했던 log작업을 AOP작업을 통해서 할 수 있음
-> depedency 가 추가로 필요함


-> aspectj Weaver







-> maven update하고 시작하기!











-> *(에스터리스크) 모든 반환타입을 이야기함

-> 모든매개변수는 ..두개임




-> 이름은 아무의미없음




-> configuration으로 옮겨주기
(한번만 붙으면 됨)

->왜 configuration에 두는가? aop도 bean으로 만들어두고 처리하는것이라서




da0)








-> Before 어드바이스 동작 계속 찍힘

-> 대체하려는 것임(매번 넣어놨으니까 찍히는것)
-> 메소드마다 로그 찍는거 넣어둠


->이름도 다르고 종류도 달라서 ->이걸 map으로 바꾸기
-> map으로 변환한뒤에













-> 배열 주소값 나와서 피곤함
















-> 여기서 만드는 거 순서 바꾸면 됨
(자바로 해놓은 이유가 xml보다 훨씬 더 많이 알아서)
before도 전, around도 전임
after가 후인데 around도 후임
-> (순서) around가 1번,


-> 모든메소드

-> 앞뒤로 실행하고 싶은거 구분해서 넣을수있다
-> 이 문장은 예외처리가 필요해서 오류가 남

-> throwable : exception의 부모임

thorwable을 exception에 저장하는거 불가능함

-> 반대로 저장하는 것은 안된다

-> object 반환이 필요한 이유는 proceed 진행메소드 이전으로 구분해서 around처리할 수 있게금 해주기 위해서

-> around는 앞뒤로 동작할 수 있는 이유가 있음





-> 시간을 밑에다가 가져다두기(동작순서 생각시)




-> before가 먼저 나옴


-> 서비스단에서 제일 적절한 aop 동작 확인 ; transaction트랜잭션임

-> insert update delete를 실제 동작시키는것
-> 하나의 서비스에 Insert, delete 같이 있을수도 있음
->그런 경우, transaction 처리필요
(ex) 탈퇴 : insert 한번, delete한번
-> 탈퇴서비스 만들때 insert,delete둘다 있음
-> insert,delete둘다 성공해야함
-> 실패하려면 둘다 실패해야함
=> 회원에서 delete실패함(지우려다가 오류나서)
-> 탈퇴자에도 명단잇고 회원에도 명단이 있음
-> 넣으면 빼야하고 못넣으면 안빼야함
-> transaction(트랙잭션)이라고함
-> transcation 처리대상 : service단으로 잡는것이 좋음
-> insert, update,delete 가 2이상 포함된 service는 transaction 처리를 실제로 해줘야함


-> new를 해서 만든 대상은 다름



-> interface 구현 클래스


-> 자바 표준 connection pool interface임



-> component를 class가장 위에 붙이기 !





-> 자바 표준 class : arrays와 비슷함(arrays가 배열도와주는 class인것처럼 list나 map이나)

-> singleton list에 new 전달하면된다


-> 그냥 만든 규칙을 transactionintersector가 요구한 타입으로 바꾸는 규칙


-> transactionmanager 호출

-> after가 transaction 처리하는걸로















-> name에 null값을 전달하는 과정으로

-> 안들어가있는것 확인하는것

-> 반환타입이 의미없음(동작할 애라서)


-> 목록보기로 가면 redirect되었고 exception 발생해서 (예외가발생해서 catch block에 코드가 동작한것)

-> 실패한 데이터가 들어와야함
(transaction 제대로 동작안하면 지금처럼 동작하는게 맞음) -> 하나의 서비스에서는 좋은 상황이 아님
-> 이렇게 남으면 transaction 처리가 안된거라 큰일남
-> 데이터 무결성 담보 못함
-> 모두 실패해야 transaction 이성공함

-> 애만 살아남은 rollback해야함
AOP로 Tranasction 하고 있음
: 좋은점이라면) transaction 수업은 끝남
안좋은점 ) 성능의 영향 미세하게 미칠 수 있음
-> 계속 도는것이 싫으면 : 표시 넣어야 함

-> 메소드마다 표시를 할건데 그럴꺼면 aop 할필요 x


(통합테스트 : controller를 테스트로 돌릴수 있음-> 전부다 테스트됨)


log4j 지우고




-> 파일이름 바꾸기








-> db관련해서 총 5개씀








-> 해당 프로퍼티를 불러들어서 enviroment 를 제작을 해서 spring이가지고잇음

-> 우리는 이값을 가져다가 써야함

-> property만 됐다
-> mybatis.xml도 이 자리에 올 예정임