본문 바로가기

SpringBoot

(14)
SpringBoot - 포토갤러리(MySQL 활용) -> MySQL 활용 )jsp 설정(pom파일에 라이브러리 넣기/applications.properties에 view resolver 세팅/views폴더 등 넣기) )mybatis 설정(메모장에서 복사해오기 - mysql로)-> 해당부분 수정 (root로 사용 금지!) )기존 프레임워크로 진행한 프로젝트에서 파일 가져오기-> mappers 폴더 생성 및 view폴더 2개 가져온 것.-> xml 가져온 것 )vo 패키지 생성 후 받아오기-> 패키지명 바꿔주기 )controller 패키지 생성 후 받아오기1) import 먼저 해주기2) 패키지 경로 수정해주기3) util 패키지 생성 후 받아오기3-1. 패키지 경로 수정해주기4) 원본DB 받아오기 )MySQL DB로 바꿔주기 )워크벤치에서 작업하기(멤버, ..
SpringBoot - Fileupload *)스프링 프레임워크에서는 MultPartResolver를 가지고 오고, Pom파일에 직접 라이브러리를 끌어썼더라면,=> 스프링부트에서는 그냥 사용만 하면 된다. -> 생략해도 상관은 없음. (되도록이면 넣기/들어가는 데이터 양은 조절 가능) )jsp 설정)1장만 업로드 )controller )2장 업로드-> 무조건 name의 값을 동일하게 줘야함-> 배열 형식으로 받아짐)controller-> 변수명이 같지 않아서 @RequestParam 사용(배열임을 명시하기 위함)  )여러 장 올리기-> 사진이 몇장 들어갈지 모르기 때문에 controller에서는 arraylist로, jsp에서는 반복문(c:forEach)으로 처리한다.
SpringBoot - Interceptor )Inteceptor는 보안의 역할을 한다(ex: 성인용 사이트) *)SpringBoot에서 Interceptor는 aop의 Advice와 마찬가지로 객체로 만들어서 전달하면 됨 )기본 라이브러리 환경-> 기본 웹환경(테스트용이기 때문에 db x) )jsp 환경설정)view resolver )interceptor 구성-> debug => info(실행 시, 찍히는 것을 확인하기 위함) )interceptor 환경설정 )controller )추가-> 더 이상 interceptor가 걸리지 않는다 *)add와 exclude 둘 중 적절히 사용하면 된다.(add를 사용하는 것이 더 효율적임 - interceptor를 걸 경로만 추가해주는 것이 서버에 부하갈 우려가 훨씬 적다) )interceptor로 제한 걸..
SpringBoot - AOP )기본 라이브러리-> aop를 테스트하기 위해선 별도의 라이브러리를 넣지는 않는다(spring.io에서는!)-> 직접 라이브러리를 끌어와야함*)기본 세팅 끝 )service 구성 )advice-> import 주의!-> 경로 변경해주기(advice 패키지 하위)/클래스이름 Advice로 변경 )main 설정 )controller-> 패키지 이름 수정-> 수행시간이 잘 들어간 모습-> hi()는 딜레이를 걸지 않았기 때문에 수행시간이 거의 걸리지 않는다-> 딜레이용 반복문을 걸었을 때, 수행시간이 조금 늘어남 *)주의할 점-> Advice에 애너테이션 잘 넣어주기
SpringBoot - Transaction(framework에서 바꾸기) )기본 라이브러리 )jsp 환경설정 )기본 설정 )view resolver설정)기본 (자바)패키지 구성 )기본 클래스 구성(초안) )mapper구성-> 폴더 생성-> Mapper 이름 변경 )Mybatis 설정-> 이름 수정 )vo 수정 )Dao 수정-> 삭제(impl)->  mapper와 이름 동일하게 바꾸기-> 경로, import 시키기*) 1. mapper와 dao이름 동일하게 맞춰주기*) 2. mapper의 namespace 경로 바꿔주기*) 3. dao에 @Mapper 추가*) 4. id에는 메서드 이름으로 수정->out, remain도 똑같이 복사해서 내용 수정=>단, remain에서 주의할 점!-> 인자가 다를 땐, 메서드 이름을 구분해주자. )service 수정-> @Service 등록 (..
SpringBoot - JPA - 연관관계(테이블조인) )부서 - 사원 (1:1)관계-> 사원 정보에 부서정보가 같이 들어감 -> 일반 SQL문으로 inner join한 것(굳이 할 필요는 없음, 위의 Entity에서 이미 처리된 내용) )사원 - 고객 (1:n) 관계-> Gogek Entity 생성-> 사원 별 담당 고객 정보
SpringBoot - JPA - JPQL테스트(조회, 정렬, 페이징) *)단, 주의할 점이 있다. )부서별 조회(일반SQL문)-> 반환타입을 (형변환을 통해)맞춰줄 수도 있으나, 좀 더 직관적으로 표현하는 것이 더 쉽다.   )부서별조회(JPQL문) *) 차라리 mapper를 사용하여 더 직관적인 Mybatis를 사용하는 것이 안전하다(쿼리가 복잡해지면 오히려 JPA의 사용이 더 어려울 수 있음) )정렬 처리 )페이징처리-> 현재는 oracle10버전이라 적용되지 않는다. (혹은 MySQL 설치)
SpringBoot - JPA - 수정/삭제 )삭제 )수정 폼/수정-> Id(pk) 변경시에는 실패처리됨!(없는 번호인 경우)-> 기본 컬럼 변경시에는 수정에 성공한다