스프링 부트 6일차

선장원·2022년 1월 12일
1

SpringBoot

목록 보기
7/18

6일차 (01/12)

스프링 부트

테스트

  • 유닛 테스트 : 기능별로 테스트하는 것

interceptor

인터셉터

홈페이지를 이동하기 전에 조건을 검색을 해서 일치하면 홈페이지로 보내주고 아니면 로그인 페이지로 보낸다

프로젝트에서 써보고 싶었는데 재밌겠넹

홈페이지를 누르면 WebConfig 파일이 실행이 되고
그 안에서 인터셉터 메서드를 불러와서 해당 인터셉터 메서드로 넘어가서
해당 인터셉터 메서드의 결과를 가져와서 해당 인터셉터가 실행이 되면 로그인 페이지로 넘어간다

WebConfig클래스

@Configuration : 설정 정보를 스프링 실행시 등록 해줌

implements WebMvcConfigurer을 해줘야함!

@Override이기 때문에 똑같이 해야함

InterceptorRegistry : 인터셉터를 저장해주는 저장소?

.addInterceptor(new 체크인터셉트 메서드) : 만든 인터셉트 메서드를 가져온다
.order(숫자) : 해당 인터셉터가 실행되는 순서
.addPathPatterns(“/**”) : 해당 프로젝트의 모든 주소에 대한 인터셉트 적용
.excludePathPatterns(“주소1”,”주소2”) : 적은 주소는 예외

LoginCheckInterceptor클래스

implements HandlerInterceptor를 해줘야 한다

HttpServletRequest : 요청을 보낸 페이지
HttpServletResponse : 내가 요청을 할 페이지

HttpSession에 request로 받아온 세션을 넣어 준다

if (session.getAttribute(“이메일 세션 이름”)==null)을 이용해서 값이 없다면
요청을 보낸 페이지(전 페이지)의 주소를 response로 보내고 결과를 false로 보낸다

로그인이 되어 있는 상태면 true를 보내서 요청한 페이지로 보낸다

여기서 부터는 내가 만든 내용
전페이지 주소를 @RequestParam으로 받아서 모델로 다시 보내고
로그인 페이지에서 form태그 안에 input을 히든으로 만들고 (DTO에 URL용 필드 하나 생성) 로그인 DTO에서 받아서 같이 가져와서 리턴을 redirect:+로그인DTO.getURL으로 해서 다시 해당 페이지로 돌아가는 것이다

체인메서드


해당 메서드처럼 줄줄이 이어져있는 메서드를 체인메서드라고 한다

mybatis

설정

application.yml

alias설정을 하면 mapper에서 parameterType과 resultType에서 앞부분을 지우고 DTO이름만 써서 사용이 가능하다

gradle

   implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'

MemberMapperRepository 인터페이스

@Mapper 를 해줘야함, 인터페이스로 만들어야함

mapper에 있는 id와 메서드 이름을 같게 해야한다
2가지 방법이 있다

mapper의 내용을 불러오는 것과

어노테이션을 이용해서 직접 하는 내용 두가지가 있다

memberMapper.xml

mapper 태그 namespace는 맵퍼리포지토리를 지정해 주면 된다

profile
코딩도전기

0개의 댓글