Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

번개멍

[Spring] 자동주입 본문

코딩이야기/Spring

[Spring] 자동주입

번개멍 2020. 6. 30. 16:39

.자동 주입(AutoWire)

------------------------------------------------------------------------------------------------------------------------

- 기존에 생성자 주입,  Setter 주입 등을 이용했었는데, 좀 더 편리하게 주입하기 위하여 사용합니다.

- 자동 주입은 이름, 타임, 생성자를 통하여 할 수 있습니다.

- 자동 주입은 객체 주소 값만 가능하므로 참조 변수를 제외한 나머지들은 직접 명시해 주어야 합니다.

  즉 문자열, 정수형, 실수형 등

 

1) 이름을 이용하여 주입 방법

    <bean id="data1" class='kr.co.ezen.beans.DataBean1'/>

     

    TestBean.java

        private DataBean1 data1;

        private DataBean1 data2;

    => 자동 수입

       <bean id ="data1" class="kr.co.ezen.beans.DataBean1" autowire="byName"/>

       <bean class='kr.co.ezen.beans.TestBean' />

 

       <!-- 자동주입 빈 정의 -->

       <bean id='data1' class='kr.co.ezen.beans.DataBean1' />

       <bean id='data2' class='kr.co.ezen.beans.DataBean2' />

 

2) 타입을 이용하여 자동 주입

     byType : 빈 객체의 프로퍼티 타입과 정의된 빈의 타입이 일치할 경우에 주입합니다.

                 이때, 동일 타입의 빈이 두개 이상 정의되어 있으면 오류가 발생합니다.

 

       <bean id='data3' class='kr.co.ezen.beans.DataBean3' />

    

       DataBean3.java

       ----------------------------

       private DataBean3 data1;

       private DataBean3 data2;

 

3) 생성자를 이용하여 자동 주입

    생성자의 매개변수 타입과 정의된 빈의 타입이 일치하면 주입합니다.

    이때, 동일 타입의 빈이 두개 이상 정의되어 있으면 오류가 발생합니다.

    

    <bean id="data3" class="kr.co.ezen.beans.TestBean3"/>

  

    TestBean3

   -------------------------

     private DataBean3 data1;

     private DataBean3 data2;

 

    public TestBean3(TestBean3 data1, TestBean3 data2){

            this.data1=data1;

            this.data2=data2;

     }

 

    public int getData1() {
    return data1;
    }
    public void setData1(int data1) {  
    this.data1 = data1; 
    }
    public String getData2() {
    return data2;
    }
    public void setData2(String data2) {
    this.data2 = data2;
    }

 

 - 자동 주입은 객체 주소값만 가능하므로 참조변수를 제외한 나머지는 다 직접 명시해주어야 합니다.

   즉, 문자열, 정수형, 실수형 등

 - 자동 주입 설정을 하지 않고, 이름을 가지고 주입을 시도한다면 어떻게 될까요?

 

 

 

 

'코딩이야기 > Spring' 카테고리의 다른 글

[Spring]AOP Interceptor  (0) 2020.07.10
[Spring]Execution  (0) 2020.07.06
[spring]AspectJ  (0) 2020.07.06
[Spring] 어노테이션 정리  (0) 2020.07.01
[Spring]스프링의 이해?  (0) 2020.06.25
Comments