JAVA/Spring(109)
-
[springboot][Gradle] 자동 설정 만들기 #2 @ConfigurationProperties
이전글에서는 외부 라이브러리 클래스의 빈을 등록하기 위해서 설정 파일 클래스를 정의하고 빈을 정의하였습니다. 이번글에서는 외부 라이브러리와 동일한 이름의 빈을 프로젝트에 정의하고 어떤 결과가 출력되는지 봅니다. 그리고 동일한 이름의 빈을 프로젝트에 명시적으로 정의하지 않고 설정 파일을 이용해서 외부 라이브러리의 빈의 값을 설정하는 방법을 알아봅니다. 1. 자동설정의 문제점 : 명시적인 빈의 무시 외부 라이브러리 자동설정 외부 라이브러리인 "yonghwan-spring-boot-starter"의 Holoman 클래스 빈을 다음과 같이 정의되어 있다고 가정합니다. @Configuration public class HolomanConfiguration { @Bean public Holoman holoman()..
2022.08.17 -
컴포넌트 스캔(ComponentScan)과 빈(Bean) 설정
스프링 빈 설정 파일 구현 자바 설정 파일을 이용하여 빈 객체를 생성하는 방법에는 두가지 방법이 있습니다. @Bean 어노테이션을 이용한 빈 설정 @ComponentScan 어노테이션을 이용한 빈 설정 java 파일에 빈 설정 1. @Bean 어노테이션을 이용한 빈 설정 @Configuration public class ApplicationConfig { @Bean public BookService bookService(){ return new BookService(bookRepository()); } @Bean public BookRepository bookRepository(){ return new BookRepository(); } } 설정 파일 클래스를 생성한 다음 @Configuration 애노..
2022.08.15 -
[springboot][Gradle] 자동 설정 만들기 #1 Starter와 Auto-Configure
개요 스프링부트는 필요한 의존성 라이브러리를 가져와서 사용할 수 있습니다. 시작하고자 하는 애플리케이션에 @EnableAutoConfiguration 어노테이션을 적용하면 외부 라이브러리들의 정의된 빈들을 IOC 컨테이너에 등록하여 사용할 수 있습니다. 이러한 @EnableAutoConfiguration 어노테이션은 대개 @SpringBootApplication 어노테이션에 같이 정의되어 있습니다. 이 글에서는 Gradle 빌드 도구를 기반으로 외부 라이브러리를 만들고 로컬 메이븐 저장소에 저장한다음 현재 작업하는 프로젝트에 의존성 라이브러리로써 가져와서 빈을 등록하고 출력하는 것을 실습해보겠습니다. 1. 자동 설정 구현 1.1 프로젝트 추가 1.2 의존성 추가, build.gradle 파일 depend..
2022.08.15 -
[springboot] 자동 설정(Auto-Configuration) 이해
1. 자동 설정 개요 빈(Bean)의 두 단계 등록 1단계 : @ComponentScan 2단계 : @EnableAutoConfiguration @ComponentScan @Component @Configuration, @Repository, @Service, @Controller, @RestController @EnableAutoConfiguration spring.factories org.springframework.boot.autoconfigure.EnableAutoconfiguration @Configuration @ConditionalOnXxxYyyZzz 2. @ComponentScan 애플리케이션이 실행되면 @Component 어노테이션을 탐색합니다. 탐색 위치는 @ComponentScan 어..
2022.08.15 -
[springboot] 스프링 부트로 개발하기
본 내용은 Spring Boot Reference Documentation의 일부 내용을 번역하여 정리한 것입니다. 해당 내용은 원문 내용과 틀릴수도 있습니다. 1. 스프링부트로 개발하기 스프링부트로 개발할때 다음과 같은 기능에 대해서 알아봅니다. 빌드 시스템(Build System) 설정 클래스(Configuration Class) 1.1 빌드 시스템(Build System) 빌드 시스템은 다음 두 기능을 제공하는 시스템을 선택하는 것을 권장합니다. 의존성 관리 지원 "Maven Central" 저장소에 배포된 라이브러리 사용 가능 1.1.1 의존성 관리(Dependency Management) 스프링 부트의 각 릴리스(release)는 지원되는 의존성 목록을 제공합니다. 실제로 당신의 빌드 설정에서 ..
2022.08.12 -
[springboot] 의존성 관리의 이해 및 응용
1. 스프링 부트의 핵심적인 기능 : 의존성 관리(Dependencies Management) 의존성 관리란 무엇인가? 자바 스프링에서는 대표적으로 메이븐(Maven), 그레이들(Gradle)이라는 빌트 도구가 존재합니다. 이 빌드 도구들은 빌드 도구들을 이용해서 애플리케이션에 필요한 라이브러리들을 다운로드할 수 있게 도와주는 도구입니다. 여기서 다운로드 받은 어떤 한 라이브러리는 다른 라이브러리가 필요한 경우가 있습니다. 이러한 경우처럼 한 라이브러리가 다른 라이브러리를 필요한 경우를 의존성이 있다고 할 수 있습니다. 스프링부트는 어떤 한 라이브러리를 다운로드받을 때 해당 라이브러리가 의존하는 다른 라이브러리들도 같이 다운로드할 수 있도록 의존성 관리를 수행합니다. 스프링부트가 의존성을 관리하는 원리는..
2022.08.11