본문 바로가기

Java/JavaSpring

(15)
Chap 7. AOP 프로그래밍 프로젝트 준비 pom.xml에 aspectjeaver 의존 추가를 한다. org.aspectj aspectjweaver 1.9.6 runtime asepectjwearer 모듈은 AOP 설정시 필요한 애노테이션을 제공한다. 프록시 프록시는 대행자 역할으로 생각할 수 있다. 실행흐름 상 ExeTimeCalculator을 통과 후 ImpeCalculator 에 접근 할 수 있다. 이 때 ImpeCalculator 클래스의 코드 변경 없이 추가기능을 생성했다. 핵심 기능의 실행은 다른 객체에게 위임하고, 부가적인 기능을 제공하는 객체를 프록시(proxy)라고 한다. 다시 말해 프록시는 핵심 기능 구현을 하지 않는다. AOP AOP는 여러 객체에 공통으로 적용 할 수 있는 기능을 분리하여 재사용성을 높이는 프로..
Chap 6. 빈 라이프사이클과 범위 컨테이너 초기화와 종료 생성자를 통해서 객체 생성 할 때, 스프링 컨테이너를 초기화 한다. 스프링 컨테이너 설정 클래스에서 정보를 읽어와 빈 객체 생성(get) 후 각 빈을 의존주입 한다. 컨테이너를 사용한다는 뜻은 getBean()과 같은 메서드를 이용하여 컨테이너 내의 빈 객체를 구현하는 것이다. 컨테이너 사용 종료시 컨테이너를 종료한다. close() 메서드를 사용하여 컨테이너를 종료하고, 해당 매서드는 AbstractApplicationContext 클래스에 정의되어 있다. 위 내용을 요약하면 다음과 같다. 컨테이너 초기화 => 빈 객체 생성, 의존 주입, 초기화 컨테이너 종료 => 빈 객체 소멸 스프링 빈 객체의 라이프사이클 스프링 컨테이너 내의 빈 객체의 라이프사이클은 다음과 같다. 스프링 컨..
Chap 5. 컴포넌트 스캔 자동 주입(@Autowired)과 함께 사용하는 추가 기능이 컴포넌트 스캔이다. 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다. @Component 애노테이션으로 스캔 대상 지정 @Component 애노테이션에게 준 값에 따라 빈 등록시 사용할 이름이 결정된다. ex) @Component("infoPrinter") // infoPrinter가 Bean 이름이 된다. @Component 애노테이션에 값이 설정 되지 않은 경우, 클래스 이름의 첫 글자를 소문자로 바꾼 이름을 빈 이름으로 사용한다. @ComponentScan 애노테이션으로 스캔 설정 @Component 애노테이션을 붙인 클래스를 스캔해서 스프링 빈으로 등록하려면 설정 클래스에 @ComponentScan 애노테이션을..
Chap 4. 의존 자동 주입 @Autowire 애노테이션을 이용한 의존 자동 주입 자동 주입 기능을 사용하면 스프링에서 데이터 타입에 맞춰 의존객체(빈(Bean) 객체)를 찾아 주입한다. @Autowired 애노테이션은 메서드에도 붙일 수 있다. @Qualifier 애노테이션을 이용한 의존 객체 선택 자동 주입 가능한 빈이 두 개 이상이면 자동 주입할 빈을 지정할 수 있는 방법이 필요하다. 이때 @Qualifier를 사용한다. 이것은 주입 대상 빈을 한정하기 위해 사용한다. @Configuration public class AppCtx { @Bean @Qualifier("printer") public MemberPrinter memberPrinter1() { return new MemberPrinter(); } @Bean publi..
Chap 3. 스프링 DI 의존(DI)의 정의 : DI는 'Dependency Injection'의 약자로 의존주입이다. 여기서 의존은 객체 간의 의존을 의미한다. 의존주입이라는 말이 생소 할 수도 있지만, 이전 chap2에서 잠깐 다룬적이 있다. 다음 그림은 의존주입을 쉽게 설명하기 위한 예시이다. A, B, C가 다음과 같이 쌓여 있을 때 A와 C를 이어주는 B가 사라지게 된다면 다음 그림과 같이 무너지게 된다. 한 클래스가 다른 클래스의 메서드를 실행 할 때 이를 의존이라고 한다. 의존은 변경에 의해 영향을 받는 관계이고, 변경에 따른 영향이 전파된다. 클래스 내부에서 직접 의존 객체를 생성하는 것은 쉽지만 유지보수 관점(코드의 유연성)에서 문제점이 유발된다. 다음은 DI를 통한 의존처리 예제이다. package spring..
Chap 2. 스프링 시작하기 스프링을 이용한 자바프로젝트를 생성한다. 1.프로젝트 폴더 생성 2.메이븐 프로젝트 설정 - 1에서 폴더를 생성한 경로에 메이븐 프로젝트를 생성한다. (maven-archetype-quick으로 생성) - 프로젝트 생성 후 pom.xml에 다음과 같이 입력한다. 4.0.0 sp5 sp5-chap02 0.0.1-SNAPSHOT org.springframework spring-context 5.1.2.RELEASE maven-compiler-plugin 3.7.0 1.8 1.8 utf-8 dependency로 의존 항목을 설정한다. dependency가 없으면 spring 사용을 할 수 없다. dependency를 알맞게 설정하는것만으로도 프로젝트에 필요한 jar파일을 메이븐 프로젝트에 자동으로 추가된다. ..
자바 스프링 사전 작업 정리내용은 초보 웹 개발자를 위한 스프링 프로그래밍 입문 서적을 정리하였다. 스프링의 정의는 쉽게 말하여 라이브러리 집합이다. 단지 그 범위가 너무 광범위하여 기능에 맞는 라이브러리를 선별하는 선구안이 필요하다. 자바스프링을 시작하기 위해선 Java와 web(MVC모델)의 기초적인 지식이 필요하다. 이클립스에 스프링 사용을 위해 메이븐 프로젝트를 생성하는 방법은 3가지가 있다. 1. 이클립스에서 생성 2. 스프링 부트에서 생성 3. (개발자)직접생성 3번 방법은 휴먼에러가 생길 가능성이 높아 1,2 번 방법을 추천한다. 메이븐(Maven)은 관리 프로그램이라고 할 수 있다. 이클립스에 포함되어 컴파일과 의존관리를 지원한다. 메이븐은 maven.apache.org에서 다운로드 받을 수 있고, 원하는 경로에..