본문 바로가기
728x90
반응형

Java Web Programming98

[Spring/MyBatis] Spring + MyBatis 적용 연습 2 ! (+CDATA, GROUP BY, LIKE, INSERT, Sequence 시퀀스) MyBatis 설정 /mybatis.config #{something} = "a" ⇒ ProductVO.setSomething("a") * CDATA Section : Character Data 아래 영역은 xml tag가 아니라 SQL 문자임을 알려준다. /product.xml SELECT product_no as productNO, name, maker, price FROM spring_product SELECT COUNT(*) FROM spring_product SELECT DISTINCT(maker) FROM spring_product ORDER BY price DESC WHERE product_no = #{value} WHERE maker=#{maker} AND price > #{price} S.. 2020. 11. 2.
[MyBatis/Spring] 스프링에 마이바티스 적용해보기 [ MyBatis + Spring Framework 작동 원리 ] Spring Container의 역할 : IOC, AOP, MVC를 지원한다. DBCP : DataBase Connection Pool이다. SqlSessionFactoryBean : Bean - 자바의 컴포넌트, SqlSessionFactory 생성 - SqlSessionFactory : MyBatis의 전역 정보를 가지고 실행을 제어, SqlSession 생성 - SqlSession : 쿼리를 실행한다 (작업 단위 별로 factory에서 생성됨) SqlSessionTemplate : Template Pattern 중 하나이다. template은 sql 실행만 담당한다. 나머지 일은 SqlSessionFactoryBean, Mapper... 2020. 10. 30.
[MyBatis] 마이바티스 적용 연습 2 ! (SELECT, INSERT, UPDATE + include & List, Map 타입 활용) [ 구현 순서 ] java 프로젝트 생성 configure > maven project 설정 pom.xml에 MyBatis Framework 추가 ( ⇒ mybatis 환경설정 완료) src에 mybatis.config directory 생성 SqlSessionConfig에 1) 사용할 클래스 정의 및 별칭 부여 2) JDBC 환경설정 (driver, url, userid, password) 3) 태그에 SQL 정의한 Mapper xml 파일 경로 지정 SQL Mapper xml 파일 생성 (member.xml) factory directory에 SqlSessionFactoryManager 생성 (메모리 로딩의 역할을 하는 factory class) MemberVO 생성 MemberDAO 생성 membe.. 2020. 10. 30.
[MyBatis] MyBatis 마이바티스 개념과 적용! [ MyBatis 마이바티스 ] : SQL 기반의 Persistence(영속성) Framework - JDBC Framework! 특징 SQL문과 프로그램 코드의 분리 공통된 JDBC 코드를 MyBatis 가 처리 동적쿼리, 캐시모드 등 다양한 서비스 제공 제공 기능 MyBatis 설정 파일 자동생성 설정 파일 구문 자동완성 기능 제공 사용하는 곳에서 SQL문 선언 부로 이동 [ MyBatis 구성요소 역할 – Mapping API ] MyBatis API SqlSessionFactoryBuilder - 역할 : SqlSessionFactory 생성 SqlSessionFactory - MyBatis의 전역 정보를 가지고 실행을 제어 - SqlSession 생성 - Application당 하나만 생성하는 .. 2020. 10. 29.
[Spring] 스프링 AOP의 Around Advice를 통한 성능 확인 (+Log4j, StopWatch 라이브러리) [ 요구사항 시나리오] 기존 시스템의 성능을 체크한다. 서비스하는 각 메서드의 소요 시간을 레벨 별로 체크해서, 리포트를 제출해야 한다. 리포트는 0.5초 ~ 1초 소요 시에는 log.warn(target class명, 메서드 소요시간) 1초 초과 시에는 log.error(target class명, 메서드 소요시간) * 유의사항 : Exception 발생 여부와 관계 없이, 모든 서비스 계열의 모든 메서드가 체크되어야 한다. 1. 로그 관련 라이브러리 (or 컴포넌트) 체크하기 → Log4j 라이브러리 사용 2. 소요 시간 체크 관련 라이브러리 체크하기 → Spring StopWatch 사용 → StopWatch 사용법 (Log4j로 일정 시간 이상 시, 에러로 체크) /log4j.xml Spring c.. 2020. 10. 29.
[Spring] 스프링 스탑워치(StopWatch) 라이브러리 사용법 * 로그를 이용하여, 1초 이상 시 error가 발생되도록 하였다. /TestStopWatch.java package test; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.util.StopWatch; /** * Spring StopWatch 라이브러리 테스트 */ class DemoService{ //Log4j 사용하기 private Logger log =LogManager.getLogger(DemoService.class); public void getList() { // 시간 체크를 위해 stopwatch 객체 만들기 StopWatch watch .. 2020. 10. 29.
[Spring] 스프링 AOP의 Around Advice이용하기 + Log4j 활용 AOP Around Advice 연습예제 - Around Advice는 before, atfer, after-returning, after-throwing 네가지 advice를 모두 처리할 수 있다. [ Spring, AOP, Log4j 환경 설정 준비 ] 1. convert to maven project 2. pom.xml 환경 설정 org.springframework spring-context 4.3.14.RELEASE org.apache.logging.log4j log4j-core 2.12.1 org.aspectj aspectjweaver 1.8.1 3. src 내에 log4j.xml 생성 - scr에 만드는 이유 : class complie 시 컴파일 진행 대상이 되도록! /log4j.xml Sp.. 2020. 10. 29.
[Spring] Logging 로깅 - Log4j (스프링 AOP 방식 적용) [요구사항] 현재 시스템에서 서비스 중인 package - org.kosta.model 이하의 Service 계열의 class의 메서드를 대상으로, 예외 발생 여부와 관계 없이 어떤 서비스(메서드 실행)가 실행되는 지를 특정 파일(report.log)에 시간 정보와 클래스와 메서드 정보를 로깅하도록 한다. 파일 입출력 (File IO) 관련 오픈 소스 라이브러리를 이용해보자! → 자바 Logging Library인 Log4j를 이용한다. *별도의 프로젝트에서 테스트 후 적용해보도록 한다. log4j: 프로그램 작성시 로그를 남기기 위해 사용되는 자바 기반 로깅 라이브러리 설정 파일에서 팩키지별로 레벨 지정이 가능, 지정한 등급 이상의 로그만 저장하는 방식이다. ​ FATAL(가장 높은 로그레벨) ERRO.. 2020. 10. 28.
[Spring] 스프링 AOP 개념 이해와 적용 방법 (+Proxy 프록시) [ AOP 란? ] " AOP란 OOP를 더 OOP 답게!" : Aspect Oriented Programming = 관점 지향 프로그래밍 > AOP 적용 전 > AOP 적용 후 *위빙 : 횡단 관심 사항을 엮어준다. * Aspect : 관점 ! 시스템을 두 가지 관점으로 나누어 본다. 시스템을 핵심관심사(Core Concern) 와 횡단관심사(Cross-cutting Concern)로 구분하여 설계와 구현을 한다 핵심관심사(Core Concern)란 시스템의 목적에 해당하는 주요 로직 부분을 말한다 횡단관심사(Cross-cutting Concern)란 시스템의 여러 부분에 걸쳐 공통적이고 반복적으로 필요로 하는 처리내용을 말한다 AOP는 시스템의 여러 영역에 걸쳐 공통적이고 반복적으로 적용된 횡단관심사.. 2020. 10. 28.
728x90
반응형