일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2 > /dev/null
- 서브쿼리
- 커밋메세지수정
- 메세지수정
- 메소드명
- 외부키
- application.yml
- subquery
- 네이티브쿼리
- EC2
- foreignkey
- 테스트
- ubuntu
- 검색
- 컨테이너실행
- 참조키
- MySQL
- 적용우선순위
- WeNews
- appspec.yml
- docker명령어
- 포트
- AuthenticationEntryPoint
- appspec
- 테스트메소드
- 예약
- querydsl
- 추후정리
- ㅔㄴ션
- Query
- Today
- Total
제뉴어리의 모든것
SpringBoot - 자동 설정파일 만들기 1 본문
- 자동 설정이란?
말 그대로 빈들의 프로퍼티 값들을 자동으로 설정해 주는것이다.
예를들어 Member라는 빈이 존재한다고 하자.
그 안에는 여러 프로퍼티가 있고, 그중 하나가 name이다.
그 name을 내가 따로 설정해주지 않아도 자동으로 "januaryman"이라고 설정을 해주는것이다.
그리고 Spring Boot 이런 자동설정으로 인해 프로젝트에 존재하는 수많은 빈들을 자동설정해줌으로써
프로그래머는 그냥 그 빈을 가져다 쓸수 있으면 필요한 부분만은 조금씩 수정하여 개발을 진행한다.
(SpringBoot 프로젝트에서는 main 함수 위에 있는 @SpringBootApplication 내부에 @EnableAutoConfiguration 으로인해 자동 설정이 이루어진다)
그럼 만들어보자.
환경 :
OS : Windows 10
IDE : Intellij Ultimate 2020.3
1. 자동 설정을 적용할 클래스 정의와 자동설정파일이 정의 될 프로젝트를 하나 생성한다.
Spring Initializr를 사용하여 프로젝트를 생성한다.
위에 이미지와 같이 생성한다 (jar로 생성한다)
아무런 의존성도 추가하지 말고 계속 Next를 진행하여 생성한다.
2. pom.xml에 자동 설정을 위한 설정들을 추가한다.
<dependencies></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>
위에 내용을 추가해준다. (의존성의 버전 관리를 해주는 설정)
3. 패키지를 생성하고 자동설정할 클래스와 자동설정파일을 생성한다.
위와 같이 january라는 패키지를 하나 만들어 주고
그 하위에 자동설정 대상인 클래스(january) 와 자동설정파일(januaryConfiguration)을 생성한다.
4. january 클래스 정의
package com.january.autoconfiguration.january;
//자동설정으로 설정 해줄 클래스
public class january {
String name;
int age;
@Override
public String toString() {
return "january{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
5. januaryConfiguration 정의
package com.january.autoconfiguration.january;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//january맨을 자동으로 설정해줄 설정파일
@Configuration
public class januaryConfiguration {
@Bean
public january january()
{
january january = new january();
january.setName("antero kim");
january.setAge(30);
return january;
}
}
6. 프로젝트 Install
우측에 보이는 Maven창에서 Install을 클릭하여 해당 프로젝트를 jar로 만든 뒤 로컬 저장소에 저장한다.
(개발을 진행하고 있는 maven 로컬 저장소에 jar를 저장해두면 다른 프로젝트에서 해당 jar를 의존성에 추가할 수 있다)
=== 아래의 내용부터는 새로운 프로젝트
7. 지금까지 만든 클래스와 자동설정 파일을 적용할 프로젝트 생성
위에서 만든 프로젝트와 동일하게 생성하되 프로젝트명만 알아서 설정한다.
8. pom.xml에 만들어둔 jar 의존성 추가
<dependencies></dependencies> 안에 우리가 만들어 둔 jar파일을 의존성으로 추가한다.
groupId, artifactId, version은 이전 프로젝트에 pom.xml 에서 <parent> </parent>항목아래있다.
<dependency>
<groupId>com.january</groupId>
<artifactId>autoconfiguration</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
빨간 네모칸을 눌러 적용시켜준다.
9. 의존성 추가 확인
위와 같이 추가 되었다.
'Spring Boot' 카테고리의 다른 글
ResponseEntity<>와 ajax 사용시 주의사항 (0) | 2021.04.08 |
---|---|
Spring Boot Devtools 알아보기 (0) | 2021.04.07 |
[Spring] 스프링 빈(Bean)의 개념과 생성 원리 (0) | 2021.04.01 |
@ModelAttribute 란 (0) | 2021.04.01 |
webjars 추가할때 주의사항 (0) | 2021.03.23 |