본문 바로가기

Java

Container와 Bean의 Lifecycle / Scope 1. Container Lifecycle2. Bean LifecycleBean 초기화 과정에서 InitializingBean 인터페이스의 afterPropertiesSet() 가 호출되고, Bean 소멸 과정에서 DisposableBean 인터페이스의 destroy() 가 호출된다. 오버라이드해서 Bean 초기화 / 소멸 과정에 개입가능하고, student.destroy()와 같이 사용하여 컨테이너와 별개로 Bean만 소멸시킬 수도 있다. 혹은 Annotation을 사용할 수도 있다.@PostConstruct를 붙이면 초기화시 / @PreDestroy를 붙이면 소멸시 해당 메소드가 호출된다. (메소드명은 관계없음) 3. Bean Scope스프링 컨테이너 / 빈이 생성될 때 빈은 Scope, 범위를 갖고 ..
DI(Dependency Injection) DI를 왜 쓰는가? 규모가 커진 프로젝트에 DI를 사용하여 객체간 결합도를 낮춰 유지보수를 원활하게 함. 위 예제는 인터페이스를 활용하여 스프링 설정파일(xml)만을 수정하고 Java파일을 건드리지 않으면서 수정했음. DI 설정 1 - XML 사용 1-1. 생성자 태그 사용 1-2. setter 태그 사용 187 1-3. 축약c:field 혹은 p:field="" 이렇게 선언하면 이렇게 줄여서 가능하다 DI 설정 2 - 자바 클래스파일 사용 package com.javalec.ex; import java.util.ArrayList; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation..
Overloading / Overriding 오버로딩(Overloading) vs.오버라이딩(Overriding) 오버로딩(Overloading): 중복정의1-1. Overloading의 정의매개변수의 개수나 형식이 다를 때 같은 메소드명을 사용할 수 있게 지원하는 기능이다.1-2. Overloading의 조건메소드명이 같아야 한다.매개변수의 타입이나 개수는 달라야 한다.매개변수는 같으나 반환형이 다르면 오버로딩이 불가하다.1-3. Overloading 예제1234567891011class Dog{ public void bark(){ System.out.println("woof "); } //overloading method public void bark(int num){ for(int i=0; i
LinkedList / ArrayList 비교 리스트는 모든 프로그래밍 언어에서 가장 유용한 자료구조 중의 하나이다. LinkedList와 ArrayList는 모두 Java에서 제공하는 List 인터페이스를 구현한 Collection 구현체이다.하지만 인터페이스만 같을 뿐 내부적으로 동작하는 방식은 다르다. 두 자료 구조의 차이를 알아보고 LinkedList와 ArrayList를 적절하게 사용하도록 하자. List 인터페이스를 구현하는 LinkedList 또는 ArrayList는 왜 사용할까?Java 에서 LinkedList 와 ArrayList 적절하게 사용하기Java 에서는 기본형(Primitive Types) 또는 인스턴스(Reference Type)를 저장하기 위해 보통 배열을 사용한다. 하지만 배열의 초기 길이를 지정해야 하며 생성된 배열의..
String/StringBuffer/StringBuilder 성능비교 String / StringBuffer / StringBuilder 간단한 성능비교 테스트. package test;public class StringTest { int test = 99999; public static void main(String[] args) { StringTest stringTest = new StringTest(); System.out.println("스트링: " + stringTest.stringTest()); System.out.println("스트링빌더: " + stringTest.stringbuilderTest()); System.out.println("스트링버퍼: " + stringTest.stringbufferTest()); } public long stringTest..
웹에서 파일 업로드 구현하기-2 웹에서 파일 업로드 구현-2 (JSP) 웹에서 파일 업로드 구현하기-1 (지난 포스팅에서 이어짐) 지난 포스팅에서 사용자가 입력한 정보와 파일정보를 DB에 업로드하는 과정까지 성공했는데메소드를 통해 반환되어 request 영역객체에 올려놨던 List를 꺼내보자. 위와 같은 형식의 테이블에 차례로 정보를 출력해줄 것이다. 지난 포스팅에서 마지막으로 전송과 DB업로드에 성공하면 이동하게 만들었던 Board.jsp에 아래 코드를 추가해서 테이블 모양을 만든다. Board.jspDOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>Insert title heretable,td{borde..
웹에서 파일 업로드 구현하기 -1 웹에서 파일 업로드 구현-1 (jsp) 1. 환경설정 http://www.servlets.com/cos 에 접속한다. 위 그림 위치로 가서 .zip 파일을 다운받고 압축을 풀자. (혹시 몰라 파일첨부) lib폴더에 가면 cos.jar 파일이 있다. 편한 위치로 옮겨도 되고 그대로 써도 무방하다. 이 jar파일을 카피한 후 ( 프로젝트 - WebContent - WEB-INF - lib ) 아래의 사진 위치에 붙여넣기한다. 그리고 데이터베이스 연동(오라클 사용)을 위한 ojdbc6.jar 와 jstl문 사용을 위한 jstl.jar & standard.jar 총 3개를 추가로 넣어준다. ojbc6.jar의 기본경로는 C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\l..
자바 JSTL (JSP Standard Tag Library) JSTL (JSP Standard Tag Library) JSTL이란 JSP에서 자주 사용하는 기능을 구현하는 커스텀태그와 라이브러리의 모음이다.앞서 포스팅한 EL식(참조)이 JSTL 안에 자주 같이 쓰인다. JSTL 환경구축 : JSTL을 사용하기 위해서는 다음 jar파일 2개를 사용하고자 하는 웹프로젝트 내 WebContent\WEB-INF\lib 안에 복사한 뒤 지시자태그를 통해 사용할 .jsp에 아래 코드를 붙여넣으면 된다. prefix="c" 옵션은 접두어 c를 쓰면 JSTL을 사용하겠다는 일종의 선언이다.위의 설정을 마치고 나면 를 통해 JSTL를 사용할 수 있다. JSTL 사용하기: :영역객체에 저장하기.따로 영역을 지정하지 않으면 page 영역에 저장된다. scope="" 에 저장할 영역을..