자바/스프링 (6) 썸네일형 리스트형 Spring Bean Scope Bean Scope1. singleton - spring container 가 생성 될 때 한번 생성 됨, container가 소멸 될 때 bean도 소멸 됨 - 생성 된 하나의 인스턴스는 single bean cache에 저장 되고, 해당 bean의 참조가 있으면 cache에서 객체를 반환 함 - default 값2. prototype - 모든 요청에서 새로운 인스턴스를 생성해서 반환 - 사용이 끝나면 정상적인 방식으로 Garbage Collector에 의해 제거 됨3. request - 하나의 HTTP request에 하나의 bean이 생성 됨 - web-aware spring application context 안에서 유효함4. session - 하나의 HTTP session에 하나의 bean이 생.. Spring AOP AOP (Aspect Oriented Programming) - 비즈니스 로직과 공통 로직을 분리 하여 비즈니스 로직에 영향을 미치지 않고 공통 로직을 앞 뒤로 끼워넣는(?) 방법 - ex) logging, transaction 처리, 사용자 인증 등 AOP 구성요소1. Target : Aspect 부여 대상2. JoinPoint : Aspect가 적용 될 시점(위치) - Before, After, AfterReturning, AfterThrowing, Around3. Advice : 각 JoinPoint에 삽입되어 동작할 모듈4. PointCut : Advice를 적용할 JoinPoint를 선별하는 기능을 정의하는 모듈5. Introduction : Target Class에 코드 변경 없이 메소드나 필.. Spring Transaction Isolation1. READ_UNCOMMITED - 트랜잭션 처리 중인(커밋 되지 않은) 데이터를 다른 트랜잭션에서 읽을 수 있음 - dirty read 발생2. READ_COMMITED - 트랜잭션이 종료(커밋)된 데이터만 읽을 수 있음 - unrepeatable read 발생3. REPEATABLE_READ - 트랜잭션이 완료될 때 까지 읽는(select) 데이터에 shared lock 이 걸림 - phantom read 발생4. SERIALIZABLE - MVCC를 사용하지 않고 완벽한 읽기 일관성 제공 Propagation1. REQUIRED - 부모 트랜잭션이 존재하면 그 안에서 실행, 없으면 새로운 트랜잭션을 만들어서 수행2. REQUIRES_NEW - 부모 트랜잭션이 존재하던 아니던 무조건.. IoC(Inversion of Controll) - 제어의 역전 IoC(Inversion of Controll) - 제어의 역전 - 인스턴스의 생성부터 소멸까지의 생명주기를 스프링 IoC 컨테이너에서 해줌 - 스프링 IoC 컨테이너는 객체의 생성을 책임지고 의존성을 관리함 IoC 구현 방법1. DL(Dependency Lookup) - 의존성 검색 - 빈에 접근 하기 위해 개발자가 사용 시점에 검색 해서 가져옴2. DI(Dependency Injection) - 의존성 주입 - 객체 생성 시점에 필요한 빈을 컨테이너에서 주입해 주는 것 (setter injection, constructor injection, method injection) 클래스 호출 방식 일반적인 클래스 호출클래스 내에 선언과 구현이 같이 있어서 다양한 형태로 변화가 불가능 인터페이스를 이용한 클.. DispatcherServlet 1. Http(s)로 들어 오는 모든 request를 받음 2. HandlerMapping애 어떤 Controller(Handler)를 사용할건지 알아냄3. HandlerAdapter를 통해 Controller에 전달4. Controller에서 돌려준 view name으로 ViewResolver에서 View를 알아냄5. View에 요청해 처리된 결과를 화면으로 표현함6. 웹 브라우저에 최종 결과를 출력 DispatcherServlet이 가지는 기능(전략 인터페이스)HandlerMappingRequest와 Controller 객체를 mapping을 정의하는 인터페이스일반적으로 사용하는 @RequestMapping을 이용한 handler mapping 전략 BeanNameUrlHandlerMapping, D.. Spring Bean 설정(XML) 1. context:component-scan - base-package : @Controller, @Component, @Service, @Repository 어노테이션을 가진 클래스들을 빈으로 등록하기 위해 탐색 할 최상위 패키지 - use-default-filters : true이면 exclude-filter를 통해 선언 된 어노테이션을 제외하고 등록 exclude-filter가 없으면 4개의 어노테이션을 모두 등록, false이면 아래 include-filter를 통해 선언 된 어노테이션만 등록(default = true) - context:include-filter : @Controller, @Component, @Service, @Repository 중 등록하고 싶은 어노테이션만 지정해서 등록.. 이전 1 다음