까뮈_b
까뮈의 개발 노트
까뮈_b
전체 방문자
오늘
어제
  • 분류 전체보기 (23)
    • JAVA (0)
    • Spring (4)
    • JPA (1)
    • JavaScript (1)
    • DB (0)
      • Mysql (0)
    • Tools (4)
      • IntelliJ (2)
      • WebStorm (1)
      • Flyway (1)
    • 에러노트 (2)
    • 생각노트 (1)
    • Git (4)
    • HTML&CSS (1)
    • Laravel (2)
    • AWS (3)
    • Server (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • webstorm keymap
  • Amzone Linux AMI 2
  • EC2 호스트네임 변경
  • 의존관계 주입
  • 111: Connection refused
  • AWS ElasticBeanstalk
  • netstat
  • 502 Bad Gateway
  • ElasticBeanstalk 버그
  • 구조 분해 할당
  • start.spring.io
  • ElasticBeanstalk
  • DBEngineVersion
  • 컴포넌트 스캔
  • spring
  • componentscan
  • 무중단배포
  • Non-ASCII Characters
  • AWS
  • 리버스 프록시 서버

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
까뮈_b

까뮈의 개발 노트

Spring

스프링부트가 처음 실행될 때. @SpringBootApplication에 관하여.

2022. 4. 19. 14:38

스프링부트를 실행하면 맨 처음 [Artifact명]Application으로 명명된 메인 어플리케이션 클래스의 메인메소드가 실행된다.

 

메인 어플리케이션을 살펴보면 다음과 같이 되어있다.

@SpringBootApplication
public class CoreApplication {

   public static void main(String[] args) {
      SpringApplication.run(CoreApplication.class, args);
   }
}

위의 코드에서 @SpringBootApplication 어노테이션을 살펴보자.

해당 어노테이션은 아래의 3가지 어노테이션을 모두 포함하고 있는 어노테이션이다.

 

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

각각의 어노테이션은 아래와 같은 역할을 한다.

  • @SpringBootConfiguration: 스프링 부트의 설정을 나타내는 어노테이션이다. 스프링의 @Configuration을 대체하며 스프링 부트 전용 어노테이션이다. 테스트 어노테이션을 사용할 때 계속 이 어노테이션을 찾기 때문에 스프링 부트에서는 필수 어노테이션이다.
  • @ComponentScan: 내부 스캔
    • Configuration, Repository, Service, Controller, RestController
    • Component라는 어노테이션이 달린 의존성이 스캔된다.

 

  • @EnableAutoConfiguration: 외부스캔. 자동 설정의 핵심 어노테이션이다. 
    • 만약에 ComponentScan 스캔을 하고 EnableAutoConfiguration을 할때 둘의 내용이 겹치는 것이 있다면 뒤의 내용으로 덮어써진다.
    • factories 밑에 있는 의존성이 스캔됨
    • com 밑의 패키지에서 다른 구성 요소, 서비스를 찾도록 스캔한다.

 

 

 

 

 

참조 : https://velog.io/@adam2/SpringBoot-%EC%9E%90%EB%8F%99-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95AutoConfiguration

 

[SpringBoot] 자동환경설정::AutoConfiguration 까보기

스프링부트가 어떻게 자동으로 환경설정 하는지 알아봅시다.

velog.io

https://velog.io/@borab/Spring-boot-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC-1

 

Spring boot 개념 정리 Step1 : Spring Application

을 강의를 듣고 정리하였습니다.스프링 부트 스타터강의에서는 maven을 사용하였지만 이번에는 gradle을 이용하여 생성| 환경 : java 11, gradle기타 의존성은 추후 추가Application.java@SpringBootApplication 어

velog.io

 

 

'Spring' 카테고리의 다른 글

컴포넌트 스캔과 의존관계 자동 주입 시작하기  (0) 2022.04.20
[AppConfig] 앱의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 기획자.  (0) 2022.04.19
[프로젝트 생성] start.spring.io를 통해 프로젝트 생성하는 법  (0) 2022.04.14
    'Spring' 카테고리의 다른 글
    • 컴포넌트 스캔과 의존관계 자동 주입 시작하기
    • [AppConfig] 앱의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 기획자.
    • [프로젝트 생성] start.spring.io를 통해 프로젝트 생성하는 법
    까뮈_b
    까뮈_b
    까먹지 않기 위해서 개발 관련 시행착오를 정리한 포스트를 작성합니다.

    티스토리툴바