전체 글

전체 글

    Spring 의존성 주입 (DI)

    Spring 의존성 주입 (DI)

    - 스프링 프로젝트에, 의존성을 주입할 클래스 3개 생성 1. Restaurant 클래스 @NoArgsConstructor @Component("restaurant") public class Restaurant { ;; } // class 2. Chef 클래스 @NoArgsConstructor// 모든 생성자는 명시적으로 보이게 하기 @Component("Chef")// stereotype annotations public class Chef { ;; } // class 3. Hotel 클래스 @NoArgsConstructor @Component("Hotel") public class Hotel { ;; } // class - src 폴더 안에서 root-context.xml 파일 찾아 열기..

    [Spring]  java.lang.ExceptionInInitializerError

    [Spring] java.lang.ExceptionInInitializerError

    * 발생 상황 : 스프링 3.9.17 버전을 설치하고 'Spring Legacy Project - MVC 프로젝트'를 생성할 때 발생한 에러 * 주 원인 : Spring Legacy Project가 java 17을 지원하지 않아서 발생 - 현재 설치된 JDK : oraclejdk 17.0.2 , temurin11-jdk - cmd에서 java -version 을 해보니, 17버전으로 지정되어있다. - temurin11-jdk를 사용하여 sts를 사용하려고 했으나, 경로 지정이 제대로 되지 않아 발생한 듯 하다. * 해결 방법 - sts 설치 경로에서 STS.ini 파일 실행 후 수정 - 수정내용 : -vm 아래에 경로 등록 → jdk11설치폴더\bin\javaw.exe (나는 아예 -vm이 없었다. 있다..

    [08.05] Quartz

    [08.05] Quartz

    Quartz - 다양한 Java 애플리케이션에 적용 될 수 있는 작업 스케줄링 라이브러리 --> Job Scheduling Library - 일반적으로 프로세스 워크 플로우, 시스템 관리 작업을 지원하고 애플리케이션 내에서 적시에 서비스를 제공하기 위해 엔터프라이즈 급 애플리케이션에 사용됨 * Quartz Job Scheduler 구현 전에 알고 있어야 할 용어 및 개념 * 1. Job : 수행시켜야 할 일(Task) 2. JobDetail : 위1의 Job에 대한 상세정보 - 위 1의 Job을 포함 - Identity : Job Name, Job Group - Job에 전달할 데이터 설정 3. trigger : 위 2에 대한 "스케쥴링"(When? How?) 정보 - Identity: name, gro..

    [08.03] MyBatis 개념 정리

    * MyBatis SQL Mapper Framework 사용하기 * 1. MyBatis Library Download => 현재 Maven 을 사용하여 의존성(즉, 필요한 라이브러리들)을 관리하기 때문에, 아래와 같이 "pom.xml" 파일에 의존성 추가하면 끝! org.mybatis mybatis 3.5.10 2. MyBatis의 설정파일(XML파일이어야 함)을 생성 a. 설정파일의 이름: 우리 맘대로 지어도 되지만, 일반적으로 "mybatis-config.xml"이라고 지음. b. 설정파일을 생성하고, 이 XML파일의 위치는 "src/main/resources" 소스폴더에 저장 (설정파일은 프로그램 소스파일이 아니되, MyBatis 실행에 반드시 필요한 소위 "자원파일"이기 때문에) c. MyBati..

    [08.02] MyBatis

    [08.02] MyBatis

    MyBatis - 데이터 생성 객체 DAO 역할 - 마이바티스의 기본 설정파일 이름은 우리 맘대로 결정 하지만, 기본으로 "mybatis-config.xml" 로 생성 - xml 파일 작성 정보: MyBatis 페이지에서 참고 https://mybatis.org/mybatis-3/ko/getting-started.html# MyBatis – 마이바티스 3 | 시작하기 mybatis.org * XML설정파일에서 지정하는 마이바티스의 핵심이 되는 설정 - 트랜잭션을 제어하기 위한 TransactionManager → 트랜잭션 바운더리 단위로 Commit/Rollback (All/Nothing) - 데이터베이스 Connection인스턴스를 가져오기 위한 DataSource ( Connection Pool ) ..

    [7.28] JSP - EL

    EL은 데이터를 출력하기 위한 언어로서 문법이 직관적으로 사용하기 쉽게 구성이 되어있다. 일반적으로 JSP에서는 변수를 출력할 때 변수선언과 초기화가 반드시 필요하지만 EL은 그러한 과정 없이 바로 사용이 가능하고 null값 처리가 쉽다. 따라서 다양한 형태로 저장된 데이터를 효율적으로 처리할 수 있는 장점이 있다. 다양한 형태란 것은 Map형식, List 형식, 배열 형식, 자바빈(JavaBeans)등과 같은 형태를 의미한다. * EL언어의 문법: ${ EL변수 } * EL변수란 무엇인가? 또한, 무엇이 EL변수로 지정가능한가? (1) 4개의 공유영역에 바인딩 되어있는 공유속성명 (***) (이거야말로, 진짜 EL스펙상 나오는 EL변수임) request > session > application --%..

    [7.27] JSP - 액션 태그, 자바빈(JavaBeans) 규약

    [7.27] JSP - 액션 태그, 자바빈(JavaBeans) 규약

    JSP 표준 액션 태그 기본적인 스크립팅 요소이외에 JSP 스펙(Specification)에서는 표준 액션 태그를 제공한다. 대표적인 스크립팅 요소인 Scriptlet tag안에는 많은 자바코드가 삽입되어 실행된다. JSP를 사용하는 목적이 Presentation Logic을 구현할 목적이기 때문에 많은 자바코드를 포함하고 있는 Scriptlet tag을 제거 및 감소할 목적으로 액션 태그가 제공되는 것이다. 즉 자바코드 대신에 액션 태그만을 가지고 동일한 결과를 얻을 수 있는 것이다. 추가로 액션 태그만을 가지고는 100% 자바코드를 제거할 수는 없으며 나중에 배울 JSTL 또 는 EL 기능을 같이 추가하여 사용된다. * 대표적인 표준 액션 태그 1. - 자바빈 컴포넌트를 사용하기 위한 액션태그 2. ..

    [7.27] JSP - 예외 처리

    [7.27] JSP - 예외 처리

    * Web Application 의 예외처리 방법 3가지 * 1. page directive의 "isErrorPage"와 "errorPage"속성을 이용한 예외처리 ( exception 내장 객체를 이용한 예외 처리 ) - "JSP 전용" 예외처리 방식 - 유지보수 어려운 단점 * 아래 방법2,3은 Web Application "공통" 예외처리 방식 2. web.xml에 예외처리 설정하는 방식(HTTP status code기반) 3. web.xml에 예외처리 설정하는 방식(예외타입 기반) 1.exception 내장 객체를 이용한 예외 처리 1. 예외를 발생시키는 JSP 작성 - JSP명 : divide.jsp - 0으로 나누어 NullPointerException 발생 isErrorPage="false"..

    [7.26] JSP 기본 개념

    [7.26] JSP 기본 개념

    1. JSP == Servlet 2. HTML문서의 원하는 위치에 Model 데이터를 injection(주입)하기 위해서, 태그(JSP Scripting Tags)를 배움 3. JSP 내장객체 4. JSP 액션태그 5. EL (Expression Language) 6. JSTL(JSP standard tag libraries) --> 태그들!!! JSP Scripting 요소 5가지 (1) 주석태그 : (2) 지시자태그 : - page ===> JSP 를 서블릿 소스코드로 변환시, 변환내용을 변경 - include ===> 지정된 JSP/HTML파일의 소스코드 내용 그대로 포함(삽입) → 페이지의 모듈화 (공통적인 부분은 따로 생성한 후에 포함해 효율적인 사용이 가능. 비어있는 행까지 있는그대로 가져온다..