일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MSA
- 로그인/로그아웃
- JWT
- 세션기반 인증
- java I/O
- JPA
- 스프링부트 계층구조
- 스프링부트 구조
- 어노테이션
- RESTfull API
- formmatted
- IPC
- 프레젠테이션 계층
- http
- 동기
- 비즈니스 계층
- 퍼시스턴스 계층
- ./gradlew docker
- ./gr
- 스프링 부트 테스트
- spring
- 비동기
- 로그인 인증 흐름
- ORM
- 스프링
- 작업명중복
- 스프링부트
- @temproal
- 토큰기반 인증
- Java
- Today
- Total
[DEV] J-Jay
스프링 부트 코드 이해 (1) 본문
@SpringBootApplication
@SpringBootApplication
public class SpringBootDeveloperApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDeveloperApplication.class,args);
}
}
이 클래스는 자바의 main() 메소드와 같은 역할을 한다. 즉 여기서 스프링 부트가 시작된다.
@SpringBootApplication 어노테이션을 추가하면 스프링 부트 사용에 필요한 기본 설정을 해준다.
SpringApplication.run() 메서드는 애플리케이션을 실행한다. 첫 번째 인수는 스프링 부트 애플리케이션의 메인
클래스로 사용할 클래스, 두 번째 인수는 커맨드 라인의 인수들을 전달한다.
IntellJ에서 어노테이션을 [Ctrl] 누른 상태에서 마우스 클릭하면 아래와 같은 소스코드가 나온다.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
...
}
여기서 세 가지 어노테이션인 @SpringBootConfiguration, @ComponentScan, @EnableAutoConfiguration을 자세히 보자
@SpringBootConfiguration
@Configuration을 상속하여 만든 어노테이션이며, 스프링 부트 관련 설정을 나타낸다.
@ComponentScan
사용자가 등록한 빈을 읽고 등록하는 어노테이션이다. @Component라는 어노테이션을 가진 클래스들을 찾아 빈으로 등록하는 역할을 한다. 그렇다고 모든 빈에 @Component만 사용하는건 아니다.
@EnableAutoConfiguration
스프링 부트에서 자동 구성을 활성화 하는 어노테이션이다. 스프링 부트 서버가 실행될 때 스프링 부트의 메타 파일을 읽고 정의된 설정들을 자동으로 구성하는 역할을 수행한다.
META-INF의 spring.factories 파일에 클래스들이 모두 @EnableAutoConfiguration을 사용할 때 자동 설정된다.
그외 참고할만한 어노테이션
어노테이션 | 내용 |
@Configuration | 설정파일등록 |
@Repository | ORM매핑 |
@Controller, @RestController | 라우터 |
@Service | 비즈니스 로직 |
'Back-end > Spring' 카테고리의 다른 글
스프링 부트 구조 (1) | 2023.09.02 |
---|---|
스프링 부트 코드 이해 (2) (0) | 2023.08.31 |
스프링 부트 스타터 (0) | 2023.08.31 |
스프링 Concept (2) (0) | 2023.08.31 |
스프링 Concept (1) (0) | 2023.08.30 |