본문 바로가기

728x90
반응형

Spring/Dependency Injection

(15)
[Spring Framework] XML을 Java Configuration으로 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 지난 시간까지는 XML의 대부분을 어노테이션으로 변경해었습니다. 이번 시간에는 XML의 Configuration, 즉 과 같은 부분까지도 XML에서 없앨 수 있는 Java Configuration에 대해서 다뤄보고자합니다. 우선 XML 파일을 지워도 DI가 되게끔 하기 위해서는 이를 대체하기 위한 무언가가 필요합니다. 그것이 바로 Java Class로 만든 Config 파일입니다. 즉, XML 파일이 java 파일로 바뀌었다고 생각하면 되는 것이죠. 이 때, 새로 만든 config를 위한 java class는 이것은 Configuration을 위한 class임을 spring에게 알려주기 위해서..
[Spring Framework] @Component와 @Value 사용하기 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 저번 강의부터 이어서 xml에 있는 DI를 어노테이션으로 바꾸는 작업들을 하고 있습니다. 지난번에는 setter를 annotation으로 어떻게 변경하는지에 대해서 알아보았는데요, 이번 시간에는 xml 내에서 객체를 생성하는 부분을 어노테이션을 이용하여 바꾸는 방법에 대해서 알아보려고 합니다! 우선, 기존의 코드같은 경우에는 xml 파일을 읽으면 동시에 IoC 컨테이너에서 객체들이 생성되고, 그 생성된 객체 내의 autowired에서 객체를 이어주는 부분을 찾아 연결해주는 작업을 했었습니다. 이번에는 IoC 컨테이너의 객체들 생성 또한 xml 대신 어노테이션으로 할 수 있도록 바꿔줄 것인데, ..
[Spring Framework] @Autowired 사용 위치와 Required '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 이번 시간에는 @Autowired를 붙이는 위치와 @Required란 무엇인지에 대해서 알아보고자합니다. @Autowired의 위치 우선 Autowired는 아래와 같은 위치에서 사용할 수 있습니다. 1. 필드 위 (기본 생성자에서 객체 생성) 2. setter위 3. 오버로드 생성사 위 public class AnimalPrintName implements AnimalPrint { @Autowired // 1번 경우 Animal animal; public AnimalPrintName() { // TODO Auto-generated constructor stub } @Autowired // 3..
[Spring Framework] @Qualifier 를 사용하는 이유 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) DI를 하는 방법에는 이전 강의에서 다룬 것처럼 어노테이션이라는 방식을 사용하여 코드 내에 설정을 심는 방식과, @Autowired라는 방법을 사용한다고 했습니다. 이번 시간에는 @Autowired만으로는 동작하지 않는 상황들을 보고, @Qualifier는 무엇이고 왜 사용하는지에 대해서 알아보고자 합니다. 저번 시간에 작성했던 방식은, xml 안에 Animal이라는 객체를 이용해 생성된 bean이 하나만 있었기 때문에 @Autowired가 setter의 인자가 Animal인 것을 보고 xml의 유일한 Animal class형인 객체와 자동으로 연결해 준다고 했었습니다. 그렇다면 만약에 xml..
[Spring Framework] 어노테이션과 @Autowired 사용하기 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) DI를 하는 방법에는 이전 강의에서 사용한 것처럼 xml이라는 외부 설정을 이용하는 방법과 어노테이션을 이용하는 방법이 있습니다. 이번 시간에는 어노테이션을 이용해서 DI를 하는 방식에 대해서 알아보려고 합니다. 이전에 xml을 사용하여 외부설정을 하는 이유는, 중간에 수정을 하고 싶을 때에 소스코드는 건드리지 않고, 외부 설정만 바꿈으로써 쉽게 DI를 하기 위함이었죠. 하지만 코드가 점점 길고 복잡해짐에 따라서 xml을 사용하는게 점점 복잡하고 어려워집니다. 따라서 xml이 아닌 어노테이션이라는 방식을 사용하여 코드 내에 설정을 심는 방식을 생각해내게 됩니다. @Component xml을 이..
[Spring Framework] collection 타입의 bean 생성 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 이번 시간에는 collection 타입의 bean을 생성해보고, 콜렉션 형식은 어떻게 DI 지시서로 작성하는지 알아보도록 하겠습니다. 이전 시간에는, setter을 이용해서 부품끼리 결합시키는 방법을 배웠었는데요, 이번에는 setter가 아닌 다른 방식으로 setting하는 경우에는 어떻게 DI 지시서를 작성하는지 알아보려고 합니다! 우선 setter가 아닌 다른 방식은 어떤 것들이 있는지 아래의 예시를 들어보도록 하겠습니다. List mylist = new ArrayList(); mylist.add(new Animal("MINA", 10)); 위의 코드를 보면, mylist를 생성한 다음에,..
[Spring Framework] Spring Bean Configuration (DI 지시서) 작성법 (2) '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 이번 시간에는 생성자와 관련된 Spring DI 지시서(Spring Bean Configuration) 작성법을 알아보겠습니다. 작성법(1) 에서 짧게 생성자에 인자가 있을 때 어떻게 DI를 작성해야 하는지에 대해서 다뤄보았습니다. 이번에는 (1)에서의 방법을 포함해서 인자가 있는 생성자를 DI로 작성하는 다른 방법과 접두사 p를 사용하는 방법에 대해서도 배워보겠습니다! 지난번에 사용한 코드는 아래와 같습니다! Animal animal = new Animal("BINGO", 5); => 이 때, 태그에서 type은 생략 할 수 있지만 함수 이름이 같고 인자의 형이 다른 경우(오버로딩)를 고려하..
[Spring Framework] 이클립스에서 Spring Library 가져오기 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:)] 이번 시간에는 이클립스에서 Spring 라이브러리를 사용하기 위해서 세팅하는 작업을 해보려고 합니다. 우선 이클립스의 프로젝트를 메이븐 프로젝트로 변경하겠습니다. 프로젝트를 우클릭하여 다음 경로에서 Convert to Maven Project를 선택해주세요. Maven POM 이름은 편한대로 넣어주세요. 아래와 같이 pom.xml 파일이 만들어진 것을 확인할 수 있습니다. 이 상태에서 spring 라이브러리를 포함시켜봅시다. 만들어진 pom.xml에 다음과 같이 코드를 작성해주세요. 4.0.0 com.tech spring 0.0.1-SNAPSHOT org.springframework spri..
[Spring Framework] Application Context 사용하기 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 이번 시간에는 이전에 작성한 setting.xml을 java 코드에서 어떻게 가져와 사용하는지에 대해서 배워보고자 합니다. 만약 Spring 라이브러리가 준비되어있지 않다면 제 블로그의 아래 글을 참고해주세요! programming-workspace.tistory.com/22 [Spring Framework] 이클립스에서 Spring Library 가져오기 '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:)] 이번 시간에는 이클립스에서 Spring 라이브러리를 사용하기 위해서 세팅하는 작업을 해보려고 합니다. 우선 이클 program..
[Spring Framework] Spring Bean Configuration (DI 지시서) 작성법 (1) '뉴렉처' 님의 채널(www.youtube.com/user/newlec1)을 바탕으로 제작한 블로그 글입니다:) 이번 시간에는 Spring DI 지시서(Spring Bean Configuration)를 어떻게 작성하는지에 대해 방법을 알아보도록 하겠습니다. 코드는 지난시간(programming-workspace.tistory.com/13?category=913472)에 사용한 코드를 이용해 진행하겠습니다. 지난 글에서 설명드렸듯이, 아래와 같은 코드를 이용하였을 때, AnimalPrintAge의 부분을 AnimalPrintName 함수로 수정하고자 할때, 이전과 같은 방식으로는 코드를 수정해야만 해당 함수를 변경할 수 있다고 말씀드렸습니다. public class Program { public stati..

728x90
반응형