JAVA/Spring(113)
-
[SprinBoot] 로거(Logger) 커스터마이징
1. 커스텀 로그 설정 파일 사용 Logback : logback-spring.xml Log4J2 : log4j2-spring.xml JUL(비추) : logging.properties Logback extension 프로파일 Environment 프로퍼티 Logback 로거의 커스텀 로그 설정 파일 사용 resources/logback-spring.xml 생성 및 파일 작성 kr.yh 패키지의 발생 로그 레벨을 DEBUG로 설정 특정한 프로파일일 때만 로그를 남기기 태그를 사용하여 특정한 프로파일일때만 사용자가 정의한 로그 설정을 활성화시킵니다. 예를 들어 dev 프로파일에서는 로그 레벨을 DEBUG 레벨로 찍을 수 있습니다. Environment Properties 태그를 사용하여 Logback의 사..
2022.11.06 -
[SprinBoot] 스프링부트 기본 로거 설정
1. 로깅 퍼사드(Logging Facade)와 로거(Logger) 로깅 퍼사드와 로거의 개념 로깅 퍼사드 : 로거 API들을 추상화 해놓은 인터페이스 로깅 퍼사드를 사용하게 되면 로거들을 바꾸어 사용할 수 있습니다. 로거 : 로깅 퍼사드를 구현한 구현체 로깅 퍼사드와 로거의 종류 로깅 퍼사드 : Common Logging, SLF4J 로거 : JUL, Log4J2, Logback 스프링부트가 사용하는 로깅 원리 스프링부트는 기본적으로 Common Logging 로깅 퍼사드를 사용함 Common Logging을 사용하는 이유는 스프링 프레임워크 코어 모듈이 개발될 당시에 SLF4J가 아직 개발되지 않았기 때문입니다. Spring5부터 SLF4J를 사용하기 위해서 Spring-JCL 모듈을 사용합니다. 그..
2022.11.06 -
[SpringBoot] 프로파일(Profile)
1. 프로파일(Profile) 프로파일은 실행 환경별(운영, 개발, 로컬 등)로 등록할 빈이 다르거나 프로퍼티 등을 다르게 해주어야 할 때 사용합니다. @Profile 애노테이션 사용 위치 @Configuration @Component 특정 프로파일 활성화 방법 spring.profiles.active 추가적인 프로파일 방법 spring.config.import 프로파일용 프로퍼티 형식 application-{profile}.yml 2. @Profile 애노테이션 실습 1. 설정 클래스 파일에 @Profile 애노테이션 적용 @Profile("prod") @Configuration public class BaseConfiguration { @Bean public String hello(){ return ..
2022.11.01 -
[Spring][IoC] @Component와 컴포넌트 스캔(Component Scan)
1. 컴포넌트 스캔(Component Scan)의 주요기능 컴포넌트 스캔은 스프링 프레임워크가 스프링 빈(Bean)으로 등록할 준비가 되어있는 클래스들을 스캔한 다음 빈으로 등록하는 기능입니다. 컴포넌트의 주요 기능은 2가지입니다. 스캔 범위 : 컴포넌트를 어디부터 어디까지 스캔할지 탐색 범위를 설정 필터링 : 컴포넌트 스캔중 특정한 클래스는 빈으로 생성하지 않음 2. 컴포넌트 스캔 대상 다음 애노테이션들은 @Component 애노테이션을 갖고 있기 때문에 컴포넌트 스캔의 대상이 되어 빈으로 등록됩니다. @Component @Repository @Service @Controller, @RestController @Configuration 3. @ComponentScan의 동작 원리 @ComponentSc..
2022.11.01 -
[Spring] Null-safety : Null 관련 애노테이션
1. Null-safety 스프링 프레임워크 5에 추가된 Null 관련 애노테이션 Null 관련 애노테이션 @NonNull @Nullable @NonNullApi(패키지 레벨 설정) @NonNullFields(패키지 레벨 설정) 목적 툴의 지원을 받아 컴파일 시점에 최대한 NullPointerException을 방지하기 위함 2. Null-safety @NonNull 실습 1. @NonNull 애노테이션을 적용할 구현 코드 정의 @Service public class EventService { @NonNull public String createEvent(@NonNull String name){ return "hello " + name; } @NonNull public String publishEvent..
2022.10.31 -
[Spring] 스프링 AOP : @AOP
1. Aspect 정의 @Aspect 빈으로 등록하기 위해서 @Component 추가 2. Pointcut 정의 @Pointcut(표현식) 주요 표현식 execution @annotation bean Pointcut 조합 &&, ||, ! 3. Advice 정의 @Before @AfterReturning @AfterThrowing @Around 4. AOP 구현 실습 1. 의존성 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-aop' } 2. Aspect 클래스 정의 및 빈 등록 @Aspect @Component public class PerfAspect { } 3. Pointcut 및 Advice 모듈 정의 ..
2022.10.31