본문 바로가기

두두의 IT/Spring

Spring Boot Main Annotation

728x90
@SpringBootApplication
@ComponentScan("xx.xxx.*")
@EnableJpaRepositories("xx.xxx.*")
@EntityScan("xx.xxx.*")
@MapperScan("xx.xxx.xxx")
@EnableOAuth2Client

 

@SpringBootApplication

 

[Spring Boot] @SpringBootApplication 이란?

1. XXXApplication.java 스프링부트는 main 메소드가 선언된 클래스를 기준으로 실행됩니다. import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApp..

bamdule.tistory.com


@ComponentScan("basePackage")

  • spring 3.1부터 도입
  • 특정 패키지(basePackage) 이하에서 컴포넌트 클래스(@Component, @Repository, @Service, @Controller, @RestController 등)의 어노테이션이 붙은 클래스를 찾아 빈으로 등록해주는 역할
  • basePackages()나 basePackageClasses()를 설정해주지 않으면 기본적으로 @ComponentScan이 붙어있는 configuration 클래스가 자동으로 시작 지점이 됨


@EnableJpaRepositories("basePackage")

  • JpaRepository에 대한 설정정보를 자동적으로 로딩하고 이 정보를 토대로 Repository 빈을 등록하는 역할
  • @SpringBootApplication 어노테이션 안에 이미 등록되어 있어 스프링 부트를 사용할 경우에는 따로 어노테이션을 추가할 필요가 없어집니다.
  • Spring에서는 @Configuration 클래스에서 사용해야함
  • 기본적으로 해당 Config 클래스의 하위 패키지를 스캔

@EntityScan("basePackage")

  • 애플리케이션이 실행될 때 basePackages로 지정된 패키지 하위에서 JPA 엔티티(@Entity 어노테이션이 설정된 도메인 클레스)를 검색함
  • Jsr310JpaConverters를 사용하지 않으면 스프링 부트의 자동 설정에 의해서 처리될 베이스 패키지도 지정해야 하는 단점이 생김
  • Entity 클래스가, Entity를 사용하고자 하는 application main package와 전혀 다른 package에 있을 때 사용
  • 별도로 basePackages 속성을 주지 않으면 @SpringBootApplication에 설정한 빈 scan 범위와 동일한 범위로 Entity를 scan 함

@MapperScan("Mapper Interface 경로")

  • Mybatis 사용할 때
  • DB 설정 클래스 파일에 추가
  • mapper를 스캔할 수 있도록 함
  • mapper.xml 파일들이 바라본 기본 패키지 위치를 지정해주는 어노테이션

@EnableOAuth2Client

 

'두두의 IT > Spring' 카테고리의 다른 글

Spring Boot Mapper & Dao Annotation  (0) 2022.05.25
Spring Boot Service Annotation  (0) 2022.05.23
Spring Boot Git Open Source  (0) 2022.05.20
Spring Boot 지원 Interface & Class  (0) 2022.05.17
Spring Boot + JSP + IntelliJ 주의사항  (0) 2022.05.09