JAVA(247)
-
[Spring][IoC] @Autowired 어노테이션
1. @Autowired 어노테이션은 무엇인가? 필요한 의존 객체의 "타입"에 해당하는 빈을 IoC 컨테이너에서 탐색하여 주입하는 어노테이션 옵션 required : 기본값 true, false로 설정하게 되면 빈을 탐색하지 못할시 주입하지 않고 넘어갑니다. 2. @Autowired 어노테이션 사용 위치 생성자 세터(setter) 필드 // 주입 방법 1 @Autowired public BookService(BookRepository bookRepository){ this.bookRepository = bookRepository; } // 주입 방법 2 @Autowired public void setBookRepository(BookRepository bookRepository){ this.bookRep..
2022.08.29 -
[java][lambda] 람다식(Lambda Expression)
1. 람다식이란 무엇인가? 람다식(Lambda Expression)이란 메서드를 하나의 '식(expression)'으로 표현한 것입니다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수(anonymous function)'이라고도 합니다. 예를 들어 1~5사이의 랜덤한 수를 반환하는 메서드를 정의한다면 다음과 같이 정의할 수 있을 것입니다. int method(){ return (in)(Math.random()*5)+1; } 위와 같은 메서드 정의를 다음과 같이 람다식으로 표현할 수 있습니다. () -> (int)(Math.random() * 5) + 1) 람다식의 특징 클래스의 생성 없이 람다식 자체만으로 메서드의 역할을 수행할 수 있음 람다식은 메서드의 매개변수..
2022.08.23 -
[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