반응형 전체 글57 [Spring Core] AOP(Aspect Oriented Programming) - 1편 (기본 개념·용어·예시) AOP - 1편 소프트웨어를 개발할 때 소스코드의 규모가 커지다 보면 로깅이나 캐시와 같이 비즈니스 로직과는 크게 관련 없는 처리 내용이 소스코드의 여기저기에 산재하기 쉽다. 다음은 본래 메서드의 기능과 상관없이 메서드의 시작과 끝을 로그로 기록하는 예다. 메서드의 시작과 끝을 로깅한 예 public class UserServiceImpl implements UserService { private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class); public User findOne(String username) { log.debug("메서드 시작: UserServiceImpl.findOne 인수 = {}", username.. 2021. 4. 5. [Spring Core] 빈 설정 분할(@Import)과 프로파일(profile)별 설정 구성(@Profile) 빈 설정 분할 DI 컨테이너에서 관리하는 빈이 많아지면 많아질수록 설정 내용도 많아져서 관리하기가 어려워진다. 이럴 때는 빈 설정 범위를 명확히 하고 가독성도 높이기 위해 목적에 맞게 분할하는 것이 좋다. [자바 기반 설정의 분할] 자바 기반 설정 방식에서 설정된 내용(Configuration Class)을 분할할 때는 @Import 애너테이션(org.springframework.context.annotation.Import)을 사용한다. 다음은 AppConfig 클래스의 빈 정의 내용을 DomainConfig 클래스와 InfrastructureConfig 클래스에 나눠서 분할한 예다. 분할한 설정 클래스를 임포트하는 대표 설정 클래스(AppConfig.java) @Configuration @Import.. 2021. 4. 5. [Spring Core] Bean Scope(빈 스코프)와 Bean의 LifeCycle(빈의 생명주기) Bean Scope DI 컨테이너는 빈 간의 의존 관계를 관리할 뿐만 아니라 빈의 생존 기간도 관리한다. 빈의 생존 기간을 빈 스코프(Bean Scope)라고 하는데 개발자가 직접 빈의 스코프를 다루지 않아도 된다는 점은 DI 컨테이너를 사용하는 큰 이유이기도 하다. DI 컨테이너가 관리하는 빈은 기본적으로 싱글턴으로 만들어진다. 스프링 프레임워크에서 사용 가능한 스코프의 종류는 다음과 같다. 이 중에는 웹 환경에서만 사용 가능한 것도 있다. 스프링 프레임워크에서 사용 가능한 스코프 스코프 설명 singleton DI 컨테이너를 기동할 때 빈 인스턴스 하나가 만들어지고, 이후부터는 그 인스턴스를 공유하는 방식이다. 기본 스코프이기 때문에 별도로 스코프를 지정하지 않았다면 singleton으로 간주한다. .. 2021. 4. 5. [Spring Core] Component Scan (@ComponentScan) 컴포넌트 스캔 컴포넌트 스캔(Component Scan)은 클래스 로더(Class Loader)를 스캔하면서 특정 클래스를 찾은 다음, DI 컨테이너에 등록하는 방법을 말한다. [기본 설정으로 컴포넌트 스캔하기] 스캔 대상 애너테이션 별도의 설정이 없는 기본 설정에서는 다음과 같은 애너테이션이 붙은 클래스가 탐색 대상이 되고, 탐색된 컴포넌트는 DI 컨테이너에 등록된다. @Component (org.springframework.stereotype.Component) @Controller (org.springframework.stereotype.Controller) @Service (org.springframework.stereotype.Service) @Repository (org.springframew.. 2021. 4. 5. 이전 1 2 3 4 5 6 7 ··· 15 다음 반응형