annotation

로로·2023년 1월 27일

Logging

@Slf4j

private static final Logger LOG = LoggerFactory.getLogger(Sample.class);

=>

lombok 이용

@Slf4j
public class Sample {
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>${lombok.version}</version>
  <scope>provided</scope>
</dependency>
@Controller
@Slf4j
public class TestController {
    @GetMapping("/")
    public String String(String str){
        try {
            str.toString();
        } catch (NullPointerException e){
            log.trace("가장 디테일한 로그");
            log.warn("경고");
            log.info("정보성 로그");
            log.debug("디버깅용 로그");
            log.error("에러",e);
        }
        return "test";
    }
}

@Bean vs @Component

공통점 : Spring(IOC) Container에 Bean을 등록하도록 하는 메타데이터를 기입하는 어노테이션

@Component
개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션

https://galid1.tistory.com/494

@

@NoArgsConstructor : 파라미터가 없는 기본 생성자를 생성

@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만듦

@RequiredArgsConstructor : final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 만듦

@PostConstruct, @PreDestroy

@PostConstruct : 초기화 작업을 할 메소드에 적용
@PreDestroy : 컨테이너에서 객체를 제거하기 전에 실행

profile
청로하~🏝️

0개의 댓글