dev/스프링 (46) 썸네일형 리스트형 custom annotation 사용법 얼마 전에 회사 프로젝트 개발하다가 custom annotation을 사용하게 되었습니다. 평소에 어렴풋이 알고 있었는데 막상 써보려고 하니 시간이 오래 걸렸습니다. 프로젝트에서 custom annotation을 클래스에 적용했습니다. 똑같은 인터페이스를 상속한 클래스 중에서 특정 클래스를 호출하는 기능을 개발했습니다. 먼저 annotation을 생성합니다. annotation을 적용할 타입을 클래스로 정하고(8라인) 사용 유지 범위를 운영환경까지로 정합니다.(9라인) "service"라는 속성을 추가했습니다.(12라인) 다음으로 annotation을 적용한 클래스들을 관리하는 클래스를 생성합니다. annotation을 적용한 클래스들의 정보를 저장하는 "tmpAnnoationList" 라는 map 객체.. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 에러 새로운 프로젝트 임포트 하다가 다음과 같은 에러가 발생하는 것을 확인했습니다. 에러 내용을 확인해보니 해당 프로젝트의 톰캣 버전(8버전)과 현재 이클립스에 설치된 톰캣 버전(9버전)이 달라서 생긴 에러였습니다. 기존에 톰캣 버전이 8이었는데 9버전으로 변경하니 에러가 해결되었습니다. component-scan 에러 스프링 프로젝트 개발하다가 중간에 다음과 같은 에러가 떠서 당황했습니다. 구글링 및 여러 블로그를 검색한 결과 스프링 설정이 중간에 꼬여서 이런 문제가 발생한 거 같아서 "spring project nature"을 제거하고 다시 추가했더니 (프로젝트 우클릭 -> spring tools -> remove spring project nature, add spring project nature) 에러가 발생하지 않았습니다. 정확한 이유는 모르겠으나 위와 같은 에러가 발생하면 "spring project nature"을 remove 및 add 해주시면 될 거 같습니다. cvc-complex-type.2.4.a invalid content was found starting with element 에러 해결 스프링 web.xml 에서 다음과 같이 에러메시지가 뜨면 web.xml 버전을 2.5에서 3.0으로 변경하면 에러가 해결된다. web.xml 버전에 따른 에러 메시지인 것 같다. myBatis ResultHandler myBatis에서 데이터를 10만 건 이상 조회해서 List에 담게 되면 OOM 에러가 발생합니다. 따라서 이런 문제점을 해결하기 위해서는 myBatis의 ResultHandler를 사용하면 됩니다. 코드를 설명드리자면 먼저 myBatis로부터 DB 세션을 얻습니다.(774~778라인) 그리고 세션을 통해 조회 쿼리를 실행하고(781라인) 쿼리 결과를 한 번에 조회하는 게 아니라 로우 1개씩 처리합니다.(782~808라인) 예제 코드에 민감한 부분이 있어서 검은색으로 가렸지만 코드 이해하는 데는 문제없을 것으로 생각됩니다. 스프링 리눅스 로그 스프링 실행하다가 해당 에러가 떠서 원인을 파악해보니 리눅스 루트 디렉토리가 차서 뜨는 이유였다. 루트 디렉토리로 이동해서 쓸떼없는 파일 및 디렉토리를 지우니(예시 : 위 이미지 /var/log 디렉토리의 로그) 스프링이 잘 실행된다. 이전 1 ··· 3 4 5 6 다음