일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- mysql
- mysql다운로드
- 개체관계모델
- ER모델
- 타임리프Escape
- 정보처리기사실기
- 스프링부트설정
- 정처기실기
- 타임리프기본객체
- 타임리프변수
- 타임리프유틸리티객체
- spring
- MySQL설치순서
- mybatis
- 이클립스없이cmd
- 타임리프 특징
- 정보처리기사
- git
- HelloWorld출력
- 정처기실기요약
- 타임리프URL
- java
- cmd에서java파일실행
- 타임리프SpringEL
- 타임리프 표현식
- 타임리프Unescape
- 타임리프날짜
- thymeleaf
- mysql설치하기
- 정보처리기사실기요약
- Today
- Total
ye._.veloper
[ SpringBoot ] @SpringBootApplication / Bean 등록 본문
☁ @SpringBootApplication
@SpringBootApplication
public class SpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDeveloperApplication.class, args);
}
}
위 SpringBootApplication Class는 Java의 main() 메서드와 같은 역할
· 즉, 여기서 SpringBoot가 시작된다.
· @SpringBootApplication 애너테이션을 추가하면 스프링 부트 사용에 필요한 기본 설정을 해준다.
SpringApplication.run() 메서드는 애플리케이션을 실행
· 첫 번째 인수는 SpringBoot 3 Application의 메인 클래스로 사용할 클래스
· 두 번째 인수는 커맨드 라인의 인수들을 전달
@SpringBootApplication의 의미를 파악해보자
@SpringBootApplication Annotation 구성을 알아보자
· IDE에서 Ctrl + @SpringBootApplication 클릭을 하여 구성으로 들어가면 아래와 같은 코드를 확인할 수 있다.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration // Spring Boot 관련 설정
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM,
// 사용자가 등록한 Bean을 읽고 등록
classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM,
classes = AutoConfigurationExcludeFilter.class)
})
@EnableAutoConfiguration // 자동으로 등록된 Bean을 읽고 등록
public @interface SpringBootApplication {
// 생략
}
@SpringBootConfiguration
· SpringBoot 관련 설정을 나타내는 Annotation
· @Configuration을 상속해서 만든 Annotation
@ComponentScan
· 사용자가 등록한 Bean을 읽고 등록하는 Annotation
· @Component를 가진 클래스들을 찾아 Bean으로 등록하는 역할
· 모든 Bean에 @Component만 사용하는 것은 아니고, 아래와 같이 용도에 따라 다른 Annotation을 사용한다.
Annotation Name | Description |
@Configuration | 설정 파일 등록 |
@Repository | ORM 매핑 |
@Controller, @RestController | 라우터 |
@Service | Business Logic |
@EnableAutoConfiguration
· SpringBoot에서 자동 구성을 활성화하는 Annotation
· SpringBoot Server가 실행될 때 SpringBoot의 메타 파일을 읽고 정의된 설정들을 자동으로 구성하는 역할을 수행
☁ TestController로 Bean이 어떻게 등록되는지 알아보기
아래는 예시로 작성한 TestController
@RestController
public class TestController{
@GetMapping("/test")
public String test(){
return "Hello World";
}
}
@RestController
· Router 역할을 하는 Annotation
# Router란? HTTP 요청과 메서드를 연결하는 장치
· 이 애너테이션이 있어야 Client의 요청에 맞는 메서드를 실행할 수 있다.
☁ 마무리
@SpringBootApplication은 아래 세 개로 이뤄져 있다.
· SpringBoot 관련된 설정을 하는 @SpringBootConfiguration
· 사용자가 등록한 Bean을 읽고 등록하는 @ComponentScan
· 자동 설정으로 등록되는 Bean을 읽고 등록하는 @EnableAutoConfiguration
@Component Annotation이 있는 Class는 Bean으로 등록된다.
@Controller, @RestController, @Configuration, @Repository, @Service 모두 @Component Annotation을 갖고 있다.
· 용도에 맞게 때에 따라 알맞은 Annotation을 선택하여 사용
Ref.
스프링부트3 백엔드 개발자 되기
'Spring' 카테고리의 다른 글
[ SpringMVC2 ] Thymeleaf (타임리프 기본, 유틸리티 객체와 날짜, URL 링크) (0) | 2023.05.02 |
---|---|
[ SpringMVC2 ] Thymeleaf (변수 - SpringEL) (0) | 2023.04.25 |
[ SpringMVC2 ] Thymeleaf 정의 | 기본 기능 (0) | 2023.04.23 |
[ IntelliJ ] Unmapped Spring configuration file : 파일명 (0) | 2023.02.14 |
[ Spring Boot ] 1. 게시판 만들기 - 초기 개발 설정하기 (0) | 2023.02.11 |