본문 바로가기

반응형

IOC

AOP - 프록시 기반 AOP 스프링 AOP 의 특징 - 프록시 기반의 AOP 구현체 - 스프링 빈에만 AOP를 적용할 수 있다. - 모든 AOP 기능을 제공하는 것이 목적이 아니라, 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제에 대한 해결책을 제공하는 것이 목적. 프록시 패턴 - 왜 ? (기존 코드 변경 없이) 접근 제어 또는 부가 기능 추가 - 기존 코드를 건드리지 않고 일을 끼워넣기! 소스코드 - 구현할 함수를 정의한 인터페이스 package com.bpkim.demospring51; public interface EventService { void createEvent(); void publishEvent(); void deleteEvent(); } - 인터페이스를 상속하여 할 일을 선언한 Serive.. 더보기
Ioc 컨테이너 - ResourceLoader ResourceLoader - 리소스를 읽어오는 기능을 제공하는 인터페이스 리소스 로더의 역할을 한다. ApplicationContext extends ResourceLoader >> ApplicationContext 를 받아서 사용할 수 도 있고, ResourceLoader을 받아서 할 수 도있다. 명확하게 ResourceLoader 을 받아서 하는 것을 추천한다. 1. ResourceLoader을 이용해 리소스 파일 읽어오기 1) 클래스패스로 읽어오기 - 리소스 파일 생성 - 소스 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.bo.. 더보기
IoC - MessageSource ApplicationContext 에서 상속하는 MessageSource 인터페이스를 이용! 국제화(i18n) 기능을 제공하는 인터페이스 1. 메시지 소스 파일 생성 - 리소스 아래에 messages.properties / messages_ko_KR.properties 파일 생성 스프링 부트를 사용하면 Resource Bundle 이 빈으로 등록 되어 별다른 설정 없이 messages.priperties 파일을 사용 가능하다. - message.properties 파일 내용 2. 메시지 호출 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframewor.. 더보기
IoC - Environment - 프로퍼티 키 벨류 상으로 되어 있는 프로퍼티에 접근 하여 사용 계층 형 으로 제공됨. OS의 환경 변수, 자바 실행시 옵션 값 등에 전달된 키 벨류 값을 이용. 1. VM 옵션 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.context.ApplicationContext; import org.springframework.core.env.Environment; .. 더보기
IoC - Autowire(오토와이어) @Autowired - 의존성 주입을 위한 어노테이션 - required : 기본값은 true 이다. 못 찾으면 애플리케이션이 안뜬다. - 사용하는 위치 : 생성자(스프링4.3부터는 생략 가능), Setter, Field 1. 생성자 ** 기본 : 어노테이션으로 각각 bean 설정 생성자에 Autowired 어노테이션으로 의존성 주입을 한다. *** 여기에 BookRepository에 빈 설정이 되어 있지 않다면 안된다. 2. Setter 3. 필드 Autowire 의 사용 될 경우의 수! 1. 해당 타입의 빈이 없을 때 사용하던 BookRepository의 빈 설정을 해제 한후 해당 클래스를 의존성 주입을 해본다. ** 어노테이션 제거 ** 실행 해당 타입의 Bean 을 찾을 수 없다는 에러가 나온다... 더보기
IoC - ComponentScan 1. application.xml 에 오토스캐닝 등록 1) application.xml 설정 2) 어노테이션으로 Bean 등록 - BookRepository @Repository, @Service 모두 컴포넌트를 상속한 어노테이션 3) bookRepository 를 bookService 에서 사용 할 수 있도록 의존성 주입 4) 확인! application.xml 에 설정된 스캐닝에 따라 패키지 하단의 모든 어노테이션을 확인하여 빈 등록과 의존성 주입을 한다. 스프링 2.5부터 가능한 기능 2. 자바 설정파일로 설정 2-1. 자바 설정 파일에 빈 선언 1) 자바 파일에 빈 설정 ApplicationConfig.java 생성 ** BookService와 BookRepository에 있던 어노테이션을 모두 .. 더보기
IoC - application.xml 로 빈 설정 1. application.xml 파일 이용 하여 Bean 설정 1) application.xml 파일 생성 2) bean 설정 scope - prototype : 매번 - request : 요청할때마다 새로운 객체 만들기 - session : http 세션당 새로운 객체 생성 - singleton : 싱글턴(default) 빈 선언한 모습 의존성 주입 - bookService에서 bookRepository를 사용할 수 있도록 주입! ref > 레퍼런스로 다른 빈을 참조한다. 다른 빈으로 설정된 것을 사용 확인! 더보기
IoC 컨테이너란 IoC - Inversion of Control : 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라(new class), 주입 받아 사용하는 방법을 말함. 스프링 IoC 컨테이너 - BeanFactory - 애플리케이션 컴포넌트의 중앙저장소 - 빈 설정 소스로부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다. 빈(Bean) : 컨테이너 안에 있는 객체 즉, IoC 컨테이너가 관리하는 객체 public class Book{ } >> 빈이 아니다. @Repository public class BookRepository{ public Book save(Book book){ return null; } } >> 어노테이션으로 .. 더보기

반응형