spring 6

[SpringBoot] Spring Rest Docs + Spock 사용하기

가급적이면 모든 문서들은 자동화 해야겠다는 취지 + 별도 관리하지 않도록 하기위해 이것저것 알아보다가 이걸로 하기로 결정했습니다. 무엇보다 테스트를 하지 않으면 문서생성이 안된다는 점이 맘에 들었습니다.(실패하면 문서생성 안됨) 반대로 단점이 있다면 실행한 메서드별로 폴더생성되고, 동일한 이름으로 생성할 경우 마지막실행된 것으로 덮어씌웁니다. 그래서 API가 추가될때마다 문서도 추가/수정 해줘야 한다는 문제점이 있습니다. 그냥 엑셀에 관리해도 괜찮지 않을까 생각도 드네요. 여기서는 테스트 코드를 spock 를 활용(groovy 문법) 했고 gradle을 사용했습니다. 그리고 API를 호출하는 것으로는 REST Assured을 사용했습니다. Spring Rest Docs 공식문서에 REST Assured ..

[Spring Boot] log4jdbc를 이용하여 MariaDB 연결 시 에러.(DriverSpy claims to not accept jdbcUrl)

결론: 연결할 JDBC 를 추가했는지 확인한다. 만든 프로젝트는 log4jdbc 를 이용하여 Hikari 커넥션풀을 이용해 DB접속을 하려고 하는데, 다음의 에러가 계속 발생한다. Caused by: java.lang.RuntimeException: Driver net.sf.log4jdbc.sql.jdbcapi.DriverSpy claims to not accept jdbcUrl, jdbc:log4jdbc:mariadb://localhost:3306/test1 구글에 아무리 검색해도 알수가 없어서 일단 접속이 안되나 검토를 했는데 콘솔로 접속을해보니 접속이 가능하다. 그래서 다른 DBMS 주소를 접속해봤는데 여전히 동일한 에러가 난다. 그래서 마지막으로 혹시나 하는 마음에 JDBC 를 설치해봤더니 드디어..

[Spring] Mybatis 사용하기 (mapper를 interface를 이용하여 호출)

Mapper namespace 와 ID를 연결할 Interface 를 두어서 interface를 호출하는 방법이다. [Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.(링크) 마이바티스를 설정하는 것은 다음의 포스트를 참조링크 : [Spring] Mybatis 설정하기 (기본설정) 바로 코딩을 보자.이전에 Mybatis를 설정했던 파일(sqlSessionFactory 등을 설정했던 xml 파일)에서 다음의 것을 추가한다. 아래의 것은 매퍼파일의 내용이다. /* query */ basePackage로 설정한 패키지 위치에 'interface'를 생성한다.(클래스가 아니다) package com.kr.mapper.;// 매퍼의 namespace와는 경로를 맞추어..

[Spring] Mybatis 사용하기 (mapper의 id를 직접 호출)

Mapper namespace 와 ID를 직접 호출하여 조회하는 방법이다. 이 방법은 sqlSession을 이용해서 직접 호출하는 방식이다. [Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.(링크) 마이바티스를 설정하는 것은 다음의 포스트를 참조링크 : [Spring] Mybatis 설정하기 (기본설정) 바로 코딩을 보자 // 스프링의 어노테이션을 이용해 SqlSession을 주입하여 사용.@Autowiredprivate SqlSession sqlSession; // getTest를 이용해 쿼리를 조회하는 샘플public HashMap getTest(Map paramMap, ModelMap model) throws Exception {HashMap resu..

[Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.

Mybatis 에서 SQL을 저장한 MAPPER를 연결하는 방법은 크게 2가지 이다. 1) Mapper namespace 를 직접 입력하여 호출하는 방법.2) Interface 클래스를 만들어서 매핑, 호출하는 방법. 서로의 장단점이 있는데 ### 1번은 장점- 설정이 간단하다.(mybatis xml 파일 설정.)- 파일을 추가로 생성할 필요가 없다.- 코딩이 줄어든다. 단점- namespace 와 SQL ID를 풀로 써야하기 때문에 오타로 인한 에러유발이 가능하다.- 쿼리에 대한 주석을 넣으려면 Mapper 파일을 직접 열어야 하는데, 해당 Mapper파일을 Find로 직접 찾아야 한다.- 어떤 ID들이 있는지 확인하려면 쿼리가 긴게 많을경우 알아보기가 힘들다.- SqlSession 을 이용하여 조회할..

스프링(spring) 인터셉터(Interceptor) 설정하기

Interceptor 는 목적에 따라 사용할 수 있는데 대표적인 것으로 로그인 인증같은 것일다. 예를들어 어떤 매뉴에 접근하는데, 해당 매뉴가 로그인이 되어있는지 여부를 필수적으로 점검해야할 때 등 그렇다. 나는 Interceptor의 적용을 로그를 쌓는데에 두었다. 그래서 페이지를 접근할때마다 혹은 RESTFULL을 호출할 때마다 로그를 쌓게하기 위해서 Interceptor를 사용했다. 설정은 다음과 같다. 우선 스프링을 설정할 xml에 아래를 넣어두자 (내 경우는 servlet-context.xml 파일에 넣어두었다) 위에서 지정한 클래스를 생성해주자. 해당 클래스는 HandlerInterceptorAdapter 클래스를 꼭 상속시켜야 한다. 그리고 2개의 메서드를 오버로드 한다 public clas..