본문 바로가기
반응형

스프링 기본12

[Springframework] 의존성 주입과 어노테이션 (@Qualifier) 저번 @AutoWired 어노테이션에 대해 배웠습니다. 오늘은 @Qualifier 어노테이션에 대해 알아보겠습니다. 우리가 의존성을 주입하려 할때, 만약. 의존성 주입해야할 객체가 2개일때 어떡할까요? 메모리에는 이미 두개의 객체가 생성 되어있습니다. 쉬운 예로 지금 꾸준히 사용하고 있는 speaker예제를 사용해볼께요! (잘 모르시는분들은 spring 게시물 처음부터 보시면 이해하기 편할거예요!) 우리는 2개의 speaker를 만들었고, speaker라는 인터페이스로 컨트롤을 했습니다. 그리고 객체를 생성하게 되면 두개의 객체가 존재하죠? 그럼 컨테이너는 어떤 객체인줄 알고 할당을 할까요? 답은 컨테이너는 무엇도 선택하지 않고, 에러를 띄웁니다. 이러한 경우를 대비하여 스프링에서는 @Qualifier어.. 2022. 2. 9.
[Spring Framework] 스프링 p: (네임스페이스) 사용 방법 spring에는 p: 라는 네임스페이스가 존재합니다. 이 p: 네임스페이스를 이용하면 보다 쉽게 의존성 주입을 할 수 있습니다. p:는 별도의 설정이 필요하지 않기 때문에 네임스페이스만 적절하게 선언 하면 사용 가능합니다. xmlns:p="http://www.springframework.org/schema/p" 해당 문구를 xml맨위쪽 중간어디쯤 넣어놓으시면 됩니다. p:네임스페이스를 참조할 객체에 선언하는 방법을 알려드리겠습니다. p:변수명-ref="참조할 객체의 id 혹은 이름" p:변수명="설정힐 값" 두가지가 존재하는데 위는 id나 name이 있는경우, 아래는 값처럼 문자나 기본형일때 아래와 같이 사용합니다. 위 사진이 p:네임스페이스를 적용하기 전입니다. 가 두개 존재합니다. 이것을 아래와 같이.. 2022. 2. 2.
[spring framework]스프링 프레임워크 DI_의존성주입_setter인젝션(5) 앞서 우리는 DI는 생성자를 기반으로 하는 생성자 인젝션과 setter를 기반으로 하는 setter인젝션이 있다고 배웠습니다. 그럼 중간에 다중변수나 의존관계주입은 뭐냐 라고 하실수 있는데, 그건 DI를 할 수 있도록 방법입니다. 방법이라는 말이 안맞긴 하지만, DI를 할때 하나의 생성자만 만들거나? 아니면 하나의 값만 인자로 넘기는것이 아니죠? 여러 생성자를 만들어야하고, 다양한 데이터값을 인자로 전달을 하기위한 방법을 소개한것입니다. 그리고 오늘 DI setter를 기반으로 하는 setter인젝션을 배워볼거예요. 기본적으로 setter인젝션을 하기위해 setter메소드를 추가 하도록 하겠습니다. 코드를 설명하기 앞서 유사한 코드는 지우고 시작하시는게 좋아요. 우리는 크게 powerOn,powerOff.. 2022. 1. 30.
[spring framework]스프링 프레임워크 DI_의존성주입_생성자 인젝션 (2) 지난번 의존성 주입을 이용해 해결을 하고자 했습니다. 의존성 주입은 [생성자 인젝션]과 [세터 인젝션]두가지가 있습니다. 우리가 xml에 bean을 이용해 클래스를 등록해 놓으면, 컨테이너는 설정파일 (xml)에 등록된 클래스의 객체를 생성할때, 매개변수가 없는 기본생성자를 호출합니다. -> 기본 생상자? SamsungTV() {} 와 같이 ()안에 아무것도 없는것을 말합니다. 그런데, 우리는 기본생성자가 아닌 매개변수가 있는 다른 생성자를 호출 하려합니다. 이것이 [생성자 인젝션]입니다. 위 코드를 SamsungTV클래스에 추가 해봅시다. 우리가 기존에 작성했던것과는 생김새가 다르죠? 위에서 설명한 기본생성자가 아니기 때문입니다. ()안에 Speaker speaker가 추가되었습니다. 그리고 위의 코드.. 2022. 1. 27.
반응형