java 95

[Spring] @Qualifier 어노테이션

@Qualifier 어노테이션을 이용한 자동 설정 제한 동일한 타입의 빈 객체를 두 개 이상 정의한 뒤 @Autowired 어노테이션을 적용할 경우 NoUniqueBeanDefinitionException을 발생시킨다. 이럴 때는 한정자(qualifier)를 지정해서 빈 객체의 범위를 좁혀야 한다. XML 설정에서는 태그를 이용해서 한정자를 지정하며, 자바 설정에서는 @Qualifier 어노테이션을 이용해서 한정자를 지정한다. ... @Configuration public class ConfigShop { @Bean @Qualifier("order") public SearchClientFactoryBean orderSearchClientFactory() { SearchClientFactoryBean se..

Spring 2022.02.11

[Spring] @Autowired 어노테이션

객체 간 의존 자동 연결 스프링은 개발자가 일일이 의존 정보를 설정하지 않아도 자동으로 스프링 빈 객체 간의 의존을 설정해주는 기능 제공하고 있는데, 이 기능을 사용하면 스프링 코드 설정을 짧게 유지할 수 있게 된다. 이 방법 중에서 @Autowired에 대해서 알아보자. @Autowired 어노테이션을 사용하려면 XML 설정에 다음과 같은 코드를 추가해주어야 한다. // 이하 생략 ... 태그는 다수의 스프링 전처리기 빈을 등록해주는데, 이 중 의존 자동 연결과 관련된 스프링 빈은 다음과 같다. AutowiredAnnotationBeanPostProcessor : @Autowired, JSR-330에 정의된 @Inject 어노테이션 처리 CommonAnnotationBeanPostProcessor : ..

Spring 2022.02.11

[Spring] 스프링 DI를 이용한 객체 생성(3)

이전 글 : https://jaedam.tistory.com/7 [Spring] 스프링 DI를 이용한 객체 생성(2) 이전 글 : https://jaedam.tistory.com/5 [Spring] 스프링 DI를 이용한 객체 생성(1) DI란? DI는 Dependency Injection의 줄임말로서 의존성 주입이라고도 부른다. 스프링은 기본적으로 DI를 기반으로 동작하기 때.. jaedam.tistory.com 앞서 스프링 컨테이너의 종류와 XML 파일의 각 태그를 간략하게 살펴보았다. 이번 글에서는 자바 코드를 이용한 DI 설정에 대해서 살펴보자. @Configuration과 @Bean을 이용한 빈 객체 설정 스프링은 @Configuration 어노테이션이 붙은 클래스를 설정 정보로 사용한다. 그리고..

Spring 2022.02.10

[Spring] 스프링 DI를 이용한 객체 생성(2)

이전 글 : https://jaedam.tistory.com/5 [Spring] 스프링 DI를 이용한 객체 생성(1) DI란? DI는 Dependency Injection의 줄임말로서 의존성 주입이라고도 부른다. 스프링은 기본적으로 DI를 기반으로 동작하기 때문에 DI에 대한 이해가 필수이다. 여기서 말하는 의존(Dependency)이란 한 클래 jaedam.tistory.com 앞서 DI의 개념과 스프링 컨테이너 및 빈 객체를 설정하는 방식을 간략하게 살펴보았다. 이번 글에서는 스프링 컨테이너의 종류와 XML 파일의 각 태그에 대해서 살펴보자. 스프링 컨테이너 종류 스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다. 이 중에서 BeanFactory ..

Spring 2022.02.09

[Spring] 스프링 DI를 이용한 객체 생성(1)

DI란? DI는 Dependency Injection의 줄임말로서 의존성 주입이라고도 부른다. 스프링은 기본적으로 DI를 기반으로 동작하기 때문에 DI에 대한 이해가 필수이다. 여기서 말하는 의존(Dependency)이란 한 클래스에서 다른 기능을 실행하기 위해 다른 클래스(또는 타입)를 필요로 할 때 이를 의존한다고 말한다. public class FileEncryptor { // 의존 객체를 필드(encryptor 필드)로 정의 private Encryptor encryptor = new Encryptor(); public void encrypt(File src, File target) throws IOException { // 의존 객체를 로컬 변수(is, out 변수)로 정의 try(FileInp..

Spring 2022.02.08