일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- 다이나믹 프로그래밍
- springboot
- 재귀
- 정보처리기사
- SWEA
- dfs
- 스택
- JPA
- 그래프 이론
- 구현
- DB
- 브루트포스 알고리즘
- MYSQL
- 정수론
- 백준
- 깊이 우선 탐색
- 자료 구조
- 그래프 탐색
- 너비 우선 탐색
- 수학
- 소수 판정
- 백트래킹
- 배포
- Vue
- 문자열
- 알고리즘
- Spring Security
- 프로젝트
- n과 m
Archives
- Today
- Total
영원히 남는 기록, 재밌게 쓰자
@SpringBootApplication 설정 애너테이션들 (@Import, scanBasePackages 속성, @Profile) 본문
springboot
@SpringBootApplication 설정 애너테이션들 (@Import, scanBasePackages 속성, @Profile)
youngjae-kim 2024. 2. 8. 16:58728x90
반응형
웹 애플리케이션의 메인 클래스가 위치한다. 이 클래스에 메인 메서드가 위치하고 main()를 실행하면 스프링 부트가 서버를 띄우게 된다.
@Import(Config.class)
@SpringBootApplication(scanBasePackages = "hello.itemservice.web")
public class ItemServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ItemServiceApplication.class, args);
}
@Bean
@Profile("local")
public TestDataInit testDataInit(ItemRepository itemRepository) {
return new TestDataInit(itemRepository);
}
}
웹 어플리케이션을 그냥 띄우게 되면 스프링부트는 해당 프로젝트 하위 경로와 모든 설정 파일에 대해서 컴포넌트 스캔을 하게 되고 내가 설정에 포함 시키고 싶지 않은 설정 클래스들이 설정으로 등록되게 될 수 있다.
그리고 설정 클래스들끼리 충돌이 날 수 도 있다. 그래서 서버를 띄울 때 스프링 부트의 다양한 설정 옵션들을 사용할 수 있다.
- 내가 원하는 설정 파일 하나만 등록하고 싶고 싶다.
- 원하는 경로의 하위 경로만 자동 컴포넌트 대상으로 등록하고 스캔하고 싶다.
- 테스트나 다른 프로그램이 아니라 웹 애플리케이션 서버를 시작할 때만 실행을 하고 싶은 설정 메서드나 빈들이 있다.
위 경우를 설정하는데 도움을 줄 수 있는 애너테이션들이 위 코드에 들어있다.
@Import(Config.class)
- 설정 파일 관련 패키지 하위에 여러 설정 파일들이 존재할 때 그 중 하나만 설정 파일로 등록 시킬 때 사용
- 설정 파일로 등록하고 싶은 클래스의 이름을 넣어주면 된다.
**@SpringBootApplication(scanBasePackages = "hello.itemservice.web")**
- 웹 어플리케이션을 띄울 때 자동으로 컴포넌트 스캔을 할 대상 하위 패키지를 지정할 수 있다.
- 지정하지 않으면 프로젝트 하위의 모든 경로를 컴포넌트 스캔의 대상으로 잡는다.
- 여기서는 hello.itemservice.web 패키지 하위만 컴포넌트 스캔 대상으로 지정했다.
- 여기 이외의 경로를 빈 등록을 할 때는 수동으로 넣어주면 된다.
@Profile("local")
- application.properties에 프로필을 지정할 수 있다. 로딩 시점에 properties의 spring.profiles.active 속성을 읽어서 프로필로 사용한다.
- 해당 프로필 애너테이션이 붙어 있고 컴포넌트 스캔 대상의 빈이면 스프링 컨테이너에 등록이 된다.
간단하게 실습하면서 알게된 스프링 로딩 시 설정 관련 애너테이션들에 대해서 정리해보았다.
728x90
반응형
'springboot' 카테고리의 다른 글
여러가지 의존 관계 주입 방법(스프링 공부) (0) | 2025.04.10 |
---|---|
Spring Security 와 JWT를 활용한 API 인가 로직 구현 및 적용 해보기 (0) | 2024.06.20 |
Spring Security와 JWT 토큰 방식 이용한 로그인 인증 (0) | 2024.06.19 |
Spring Security 개념과 스프링 부트에 적용 해보기 (0) | 2024.06.18 |
Password Encoder로 비밀번호 암호화 처리해보기 (0) | 2024.06.17 |