반응형

쓸만한 JSP 홈페이지 만들기 22

mybatis연동 config.xml

mybatis연동시 로딩하는 config파일을 작성한다. 1. 매퍼 설정 이 설정들은 마이바티스 옵션이다. 마이바티스 홈페이지에 이 모든 옵션들이 친절히 설명되어있다(!!) http://www.mybatis.org/mybatis-3/ko/configuration.html 이 속성들은 디폴트가 아닌경우만 명시하여 value값을 바꾸면 된다. 2. 패키지, 핸들러 명시 적용할 패키지와 핸들러를 명시했다. MariaUsTypeHandler클래스는 TypeHandler를 구현하여 다음글에 작성할것이다.

file-query.xml

첨부파일에 해당하는 모든 쿼리를 여기에 모아놓는다. 첨부파일은 공통기능으로 만든다. 첨부파일 외의 공통기능은 이런식으로 정의하면 되겠다. ANDA.DEL_YN = #{delYn} AND B.TMP_YN = #{tempYn} SELECT IFNULL(MAX(ATCH_FILE_ID), 0)+1 FROM YE_ATCH_FILE SELECT A.ATCH_FILE_ID atchFileId , A.FILE_DTL , A.USE_YN useYn , A.REG_DATE regDate , A.TMP_YN tempYn FROM YE_ATCH_FILE A SELECT A.ATCH_FILE_ID atchFileId , A.TMP_YN tempYn , B.FILE_SEQ fileSeq , B.ORGIN_FILE_NM orgin..

cache-query.xml

캐시로 불러올 쿼리를 작성한다. 캐시는 특성상 변동이 많이 없는 gnb메뉴나 코드 관리 ( 테이블을 하나로 단순 코드만 관리하기 위함 )에 사용하기 적절하다. 변동 폭이 크지않기 때문이다. SELECT MENU_CD menuCd ,PARN_CD parnCd ,MENU_NM menuNm ,LINK_ADDR linkAddr ,LINK_TYP linkTyp ,USE_YN useYn ,DEL_YN delYn ,MOD_DATE modDate ,REG_DATE regDate ,ORDER_SEQC orderSeq ,DTL_DESCdtlDesc FROM YE_MENU_MGR WHERE MENU_CD = #{menuCd} 쿼리 작성시 참고할 점은 부등호가 쿼리내에 존재하다면 를 사용하는게 좋다는 것이다. cdata를 사..

공통클래스 - CommonDAO / CommonDAOImpl

공통 CommonDao를 작성한다. 이 클래스의 기능은 db에서 insert, update, delete java단에서 구현할 수 있도록 인터페이스로 구현한다. 또한 mybatis와의 연동도 가능하게 할 것이다. 1. CommonDAO public interface CommonDAO { public void setSqlSessionTemplate(SqlSessionTemplate template); public Object insert(String queryId, Object parameterObject); public int update(String queryId, Object parameterObject); public int delete(String queryId, Object parameterOb..

톰캣오류 - At least one JAR was scanned for TLDs yet contained no TLDs.

로깅관련 클래스를 추가하고 톰캣을 돌렸더니 다음과 같은 에러가 나왔다. At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 왜인지는 모르겠어 구글 번역을 돌려보니 TLD파일을 스캔할 수 없다는 내용이다. rt.jar파일 스캔을 제외하는 방법으로 해결했다. 참고 : https://javac..

web.xml설정 - ExcludeServlet

HttpServlet를 상속받아 ExcludeServlet을 만들것이다. ExcludeServlet은 web.xml에서 resourceServlet서블릿으로 등록할 것이다. 함수는 init(), doGet(), destroy()가 있는데 doGet()만 구현할것이다. 파일처리에 대한 내용이나, 자세히는 잘 모르겠으니 추후에 이에 대한 내용을 추가하고자 한다. ○ doGet() ...더보기 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletContext sc = getServletContext(); String path=req.getRequestURI()..

공통클래스 - MethodLogAop

aoplogger.xml에서 methodLogAspect빈으로 등록했고 aspect, 프록시에 methodLogAspect빈을 주입했던 MethodLogAop 클래스를 작성한다. aop-context.xml에서 method로 정의했던 logging, beforeMethod, afterMethod, afterThrowing 총 4개의 함수를 만들것이다. 1. 로거 설정 ...더보기 private final Logger logger = LoggerFactory.getLogger("Aspect Log"); - Logger들은 이름 기반으로 생성된다. - LoggerFactory.getLogger("NAME")로 Logger를 호출하면 딱하나 인스턴스를 반환한다. - 여러번 호출해도 같은객체이다. - Strin..

Spring 설정xml - aop-context.xml

스프링의 aop를 이용하여 메소드 로거를 설정할 것이다. 로거는 모든 함수의 시작 전후에 실행되도록 한다. 이렇게 모든 함수에 대해 하나의 기능을 구현하는데는 Aop가 적합하다. Aop는 스프링의 기반기능에 해당하는데, DI의 특성인 낮은 결합도를 위한것이라면 Aop는 비교적 높은 응집도를 위해 제공된다. AOP 관련 용어 정의 ...더보기 ** AOP (Aspect Oriented Programming) - 어플리케이션의 핵심적인 기능에서 부가적인 기능을 분리해서 애스팩트라는 독특한 모듈로 만들어서 설계하고 개발하는 방법. 1. 타겟 (Target) - 부가기능을 부여할 대상 2. 애스펙트 (Aspect) - 부가기능 모듈을 애스펙트라 부르며, 핵심기능에 부가되어 의미를 갖는 특별한 모듈 - 애스펙트에..

공통클래스 - AbstractVO

1. 자바직렬화 구현 자바직렬화를 구현하기위해 Serializable클래스를 구현시켰다. serialVersionUID는 적절히 초기화시킨다. 자바 직렬화란? 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에도 사용할 수 있도록 바이트(byte) 형태로 데이터를 변환하기도 하고, 바이트(byte)형태의 데이터를 다시 객체로 변환하기도 하는 기술을 말한다. 이 바이트 형태의 객체를 JVM의 메모리에 상주시키는 형태를 같이 이야기 한다. 참고 : http://woowabros.github.io/experience/2017/10/17/java-serialize.html http://woowabros.github.io/experience/2017/10/17/java-serialize2.ht..

반응형