* 공식 문서
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-developing-auto-configuration
1. 프로젝트 생성
Maven 선택 => [Next] 클릭
- 프로젝트명은 네이밍 규칙에 맞게 작성한다.
- 자동 설정 모듈 : '기술명-spring-boot-autoconfigure'
- 필요한 의존성 정의 모듈 : '기술명-spring-boot-starter'
- 하나의 모듈만 만들 경우 : '기술명-spring-boot-starter'
2. 의존성 추가(pom.xml)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- autoconfigure, processor의 의존성들의 버전관리를 하기 위해 dependencyManagement 추가
3. 자동 설정 파일 생성(@Configuration 파일)
Cocococo라는 클래스를 자동 설정해 주는 설정 파일을 만든다.
- @SpringBootApplication에서는 Bean등록은 총 2번을 진행하게 된다.
- 1차 ComponentScan : 실행 프로젝트 내부에서 스캔
- 2차 EnableAutoConfiguration(자동 설정) : 자동화 설정 파일 및 의존성에 추가된 파일들을 스캔
2차 스캔에서 셋팅 된 값이 마지막 값이 되기 때문에 1차 스켄에 등록되어도 2차 스캔 데이터가 출력 되게 된다. - @ConditionalOnMissingBean : 해당 타입의 Bean이 없을 경우만 Bean을 등록한다.
4. 팩토리 파일 생성
src/main/resource/META-INF경로에 spring.factories 파일 만든다. spring.factories 파일은 Spring에서 제공한다. (Spring Boot 3.0 이상 버전 부터는 spring.factories 사용하는 방법이 변경되어 아래 글 처럼 사용 x)
- Configuration 파일을 명시적으로 정의해 주면 @EnableAutoConfiguration가 읽어 들인다.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.example.CocococoConfiguration
5. properties 설정 방법
application.properties 파일에서 쉽게 값을 설정하기 위한 방법
5-1) 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
5-2) Properties 클래스 생성
- ConfigurationProperties : 사용할 Prefix를 설정한다.
5-3) 자동 설정 파일 (@Configuration 파일) 수정
- EnableConfigurationProperties : 사용할 Properties 클래스 적용
- 입력받은 설정 값으로 세팅해 Bean에 등록한다.
6. Build (JAR 파일 생성)
install 더블 클릭하여 Build 하면 JAR 파일이 만들어진다.
- 프로젝트를 Build를 해성 생성된 JAR파일이 다른 Maven 프로젝트에서 사용할 수 있도록 로컬 Maven 저장소에 설치된다.
7. 다른 프로젝트에 자동 설정 파일(JAR파일)에 대한 의존성 추가
7-1) 의존성 정보 복사
7-2) 사용할 프로젝트에 의존성 추가
7. application.properties 파일 수정
- 5번에서 설정한 Properties 클래스에 값을 세팅하여 Bean 등록
8. 자동 설정을 통해 등록된 Bean 사용
- ApplicationRunner : 애플리케이션으로 만들어지면 자동으로 실행된다.
반응형
'Java' 카테고리의 다른 글
[Spring Boot] 사설 SSL 인증서 생성 및 적용 방법 (0) | 2023.06.12 |
---|---|
[Spring Boot] 내장 웹 서버 개념 및 활용(서버 변경, 포트 변경) (0) | 2023.06.11 |
[Java] CompletableFuture 클래스 사용 방법 (0) | 2023.06.02 |
[Java] Optional 클래스 개념 및 사용 방법 (0) | 2023.05.31 |
[Java] 날짜 및 시간 API (Date and Time API) 사용 방법 (0) | 2023.05.30 |