WebPrograming/수업정리

22.05.19_spring 수업(5차시)_

스니썬더 2022. 5. 20. 04:09

1교시

 

인터페이스구현_평가안내 5월 24일(화요일)

 

  1. 평가체크리스트 - 40분
    1. maybatis-config.xml
    2. mapper.xml
  2. 서술형 - 40분
    1. mybatis
    2. Framwork
      1. resultMap과 resulType의 차이
      2. JdbcUtil의 내용
  3. 세미프로젝트에 MyBatis 적용부분을 각 조별로 DAO 를 1개이상 나누기 
    1. 조원 1인당 DAO를 1개이상 나누기
    2. 5월 23일 수업 시작 전까지 
  4. 5월 18일 수업 내용 정정 
    1. autoCommit default false -> true

그래서 수정함.

파이널 안내

발표일에 맞춰서 분석/설계 마무리 - 6월 22일

참고사이트 정하기

 

 

 

페이징 처리

 

 

Spring

Spring/1_Maven4

Apache Maven

 

1. 프로젝트의 버전 정보 

2. 라이브러리 정보

3. 빌드 플러그인 정보

 

-> pom.xml문서를 이용하여 관리하는 프레임 워크 

 

 

pom

pom.xml 구성

>> 문제해결시나리오/틀린부분찾기에 자주 출제

 

pom.xml에 붉은색이 뜨면 아무것도 작동이 안됨. 따라서 수정할 부분을 기억놓는게 좋음 

groupId와 artifactId를 합하면 website 주소처럼 구성된경우가 많음.

scope가 test 또는 runtime인 경우에는 jar파일에 회색빛이 돌음.

 

2교시

 

 

 

>>properties에는 거의 버전임.

>>그룹아이디가 동일한 애들은 같은 버전으로 맞춰줘야함

 

2_spring기초4

 

 

★스프링 특징 - 모두 외우기!!!

자바 특징 1 추상화 2.은닉화 3. 상속 4. 다형성

 

AOP

 - 언제 어디에라는 개념이 추가된 확장된 필터,,! 

AOP->특정기능을 뽑아 관리하는것 

패키지명 끝에 dao로 끝나고 모든 class 에 log를 뿌려주는 방식 - 예시

패키지명 끝에 dao로 끝나고 모든 class 에 log를 뿌려주는 방식

loging기능 넣어줌
transection 기능 넣어주기
보안기능 넣어주기

 

 

POJO - 이 객체를 지원해준다.

DI - 직접적으로 new해서 사용하는게 아니라 설정하여 사용하는것.

1 xml 설정하기

2 어노테이션 외우기

 

 

!! webServlet 부분을 new에 사용한적이 있습니까? NO..

어노테이션 때문에 사용한적이 없는거임!  -> 이게 바로 의존성 주입의 첫번째

 

!! web.xml에서 new 사용X -> 이거또한 의존성 주입.

!! 

의존관계

mvc 모델 - 의존관계

 

의존관계가 형성된다는 의미는 컨트롤러에서 서비스를 생성하여 사용한다면 

컨트롤러는 서비스의 의존관계다 라고 보는거임.

3교시

IoC

컨트롤러(servlet)의 생명주기 -> url이 최초 호출 -> xxxServlet클래스에 init() 호출 -> Service() 호출 -> doGet()/doPost() 호출 -> 컴파일이 다시 되면 destory()

Ioc가 되려면 DI가 되어있어야 가능함.

Spring FramWork의 특징

 

Spring의 구성 모듈(=기능)

   모듈 - > 기능의 묶음 

   

REST API 모듈 -> 애초에 적용을 시킬거면 미리 이야기가 되어야함

뭐라도 해보면 그래도...좋음,,,! 

 

DI개념이 서야 이해하기 쉬움,


패키지안에 있는걸 스캔해주어 컴포넌트생성시키겠다.
이 두개의 조합이 spring-context.xml로 보아도 좋음

공동작업의 구조를 파악하는것이 중요하다

스캔하고 생성하고 제어권을 가져와 제어관리하겠다.

 

4교시

 

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

클라이언트가 request를 함. -> request가지고 dispatcherServlet한테 감.

-> 2번 dispatcherServlet이 post고 login이야 부분을 HandlerMapping한테 줌.

-> 3번 HandlerMapping LoginController한테 줄거야 

->    post고 login이야 이거를 들고 서비스에 갔다가 결과를 받아 들고 컨트롤러로 옴

      5번  리턴을 할 데이터들= setattribute에 넣어준 애들 = MODEL

        성공을 하면 main으로 이동해줘 라고 한다면 = VIEW

        위에 것을 dispatcherServlet한테 주면

-> 해당 뷰페이지를 선택해줄게 뷰를 찾아 모델을 함께 보내줌.

-> response해줌.

 

 

HanddlerMapping은 실행시켜줄 메소드를(어노테아션을) 찾아 호출시켜주어 매칭 시켜줌. 즉 url을 열어줌.

개념에 너무 집착하지 말기.

어노테이션 천지
어노테이션 천지2

너무 일대일로 매칭시켜서 보지 말기! 

들고 들어오는 역할
리턴해주는 역할
설정파일 고칠일 솔직히 한번도 없음 . dispathercontroler가 web.xml안에 있어야함 왜? 톰캣때문에

중요! -> 구현속도에 영향력

이거만 까먹지말자!
스프링에서는 이제 이거 안만듦

일반 클래스에서 어노테이션으로 만들어주기 때문에

 

 

5교시

 

printf를 응용하여 만든 api
출력물

 

첫번째에는 attribute의 이름 적어주기

오버로딩에 위배
어노테이션
페이지  열어줌
전달할 값 넣기
적어주기
전달방식(gat, post)에 상관없이 여기로 다 들어옴

 

밑줄 친 코드 때문에 오류가남.

빨간 박스에 체크하면 톰캣 구동시

.metadata/temp0/wst.core.server/wepap~./first/ 여기에 들어가지 않음

소스코드와 같은 위치있는걸 찾아서 브라우저에 뿌려줌.

 

체크시 장점 

파일 저장할때 그니까 업로드 했을때 .metadata/temp0/wst.core.server/wepap~./first/ 에 저장 되고

db에 저장 되는데 내파일에서 찾기 어렵고 클린시 메타데이터가 지워짐

하지만 체크를 하면 클린을 해도 안지워짐.

 

단점 - JSTL 같은경우에는 jar를 넣어줘여함.

폴더 만들고 넣어줘도됨 암튼 여기에 넣어줘야함

파일시스템을 쓴다면 체크박스해제 하고 lib폴더를 지워도 됨.