스프링의 자동 조립 Bean의 세 가지 방식

6686 단어 springbean
스프링의 자동 조립 기능의 정의: 스프링 프로필에서javaBean 간의 의존 관계를 설명할 필요가 없습니다 (예를 들어 프로필 , ).IOC 용기는 자동으로javabean 간의 관련 관계를 맺는다.
자동 조립을 사용하지 않았다면 수동 조립은 보통 프로필에서 이루어집니다. 코드는 수동 조립입니다.

<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
 
  <bean id="customerDAO" class="com.hebeu.customer.dao.JdbcCustomerDAO"> 
    <property name="dataSource" ref="dataSource" /> 
  </bean> 
 
</beans> 
를 통해 customerDAO의 bean에 dataSource를 주입하였습니다.
Spring 프레임워크에서는 자동 와이어링 기능으로 Bean을 자동으로 조립할 수 있습니다.그것을 사용하려면 에서 "autowire"속성을 정의하십시오.

<bean id="customer" class="com.yiibai.common.Customer" autowire="byName" />
Spring에서는 5 자동 어셈블 모드를 지원합니다.
  • no C는 기본적으로 "ref"속성을 통해 수동으로 설정됩니다
  • byName C는 속성 이름에 따라 자동으로 어셈블됩니다.만약 bean의 이름이 다른 bean 속성의 이름과 같다면, 스스로 조립할 것입니다
  • byType C는 데이터 유형에 따라 자동으로 어셈블됩니다.만약 bean의 데이터 형식이 다른 bean 속성의 데이터 형식을 사용한다면, 호환되고 자동으로 조립합니다..
  • constructor C가 함수 파라미터를 구성하는 byType 방식..
  • autodetect C 기본 구조 함수를 찾으면'자동 조립용 구조'를 사용합니다.그렇지 않으면 유형별 자동 어셈블을 사용합니다.[Spring 3.0 이후 버전이 폐기되어 더 이상 합법적이지 않습니다.]
  • 첫 번째 자동 어셈블[속성 이름에 따라 자동 어셈블]
    
    package com.hebeu.model; 
     
    public class Customer { 
     
      private Address address; 
       
      public Customer() { 
         
      } 
       
      public Customer(int id, Address address) { 
        super(); 
        this.address = address; 
      } 
     
      public Address getAddress() { 
        return address; 
      } 
     
      public void setAddress(Address address) { 
        this.address = address; 
      } 
       
    } 
    
    
    
    package com.hebeu.model; 
     
    public class Address { 
     
      private String fulladdress; 
       
      public Address(){ 
         
      } 
       
      public Address(String addr){ 
        this.fulladdress = addr; 
      } 
     
      public String getFulladdress() { 
        return fulladdress; 
      } 
     
      public void setFulladdress(String fulladdress) { 
        this.fulladdress = fulladdress; 
      } 
       
    } 
    
    
    
    <beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
       
      <bean id="customer" class="com.hebeu.model.Customer" autowire="byName"></bean>
       
      <bean id="address" class="com.hebeu.model.Address"> 
        <property name="fulladdress" value="YiLong Road, CA 188"></property> 
      </bean> 
       
    </beans>  
    이렇게 하면 address를 Customer에 주입합니다.이것이 바로 자동 주입 ByName입니다.Customer bean에서 속성address를 공개했습니다. 스프링 용기에서address bean을 찾아 조립합니다.여기에서customer에 주입될 bean의 set 방법은 public이어야 합니다. 그렇지 않으면 빈 바늘에 이상이 발생할 수 있습니다.그리고 설정된 bean의 id는 Customer에서 설명한 변수 이름과 같아야 합니다.
    두 번째 자동 조립[데이터 유형에 따라 자동 조립]
    성명된 두 개의 bean 역시 Customer 및 Address로 응용 프로그램 Context를 사용합니다.xml을 이렇게 바꾸는 것은 데이터 유형에 따라 자동 조립을 실현하는 것이다.
    
    <beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
       
      <bean id="customer" class="com.hebeu.model.Customer" <strong><span style="color:#FF0000;">autowire="byType"</span></strong>></bean> 
       
      <bean id="bean1" class="com.hebeu.model.Address"> 
        <property name="fulladdress" value="YiLong Road, CA 188"></property> 
      </bean> 
    </beans>  
    
    형식 자동 조립은 하나의 bean의 데이터 형식이 다른 bean 속성의 데이터 형식과 같으면 자동으로 조립을 호환한다는 것을 의미한다.물론 어떤 종류의 bean만 설정할 수 있도록 요구합니다.이렇게 설정하면 오류가 발생합니다.
    
    <beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
       
      <bean id="customer" class="com.hebeu.model.Customer" autowire="byType"></bean> 
       
      <bean id="bean1" class="com.hebeu.model.Address"> 
        <property name="fulladdress" value="YiLong Road, CA 188"></property> 
      </bean> 
      <bean id="bean2" class="com.hebeu.model.Address"> 
        <property name="fulladdress" value="YiLong Road, CA 188"></property> 
      </bean> 
    </beans>  
    세 번째 자동 조립[구조 방법에 따라 자동 조립]
    사례와 함께 응용 프로그램Context를 사용합니다.xml을 다음과 같이 변환하면 구조 방법에 따라 자동으로 조립할 수 있다.
    
    <beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
       
      <bean id="customer" class="com.hebeu.model.Customer"> 
        <!--   --> 
        <constructor-arg> 
          <ref bean="bean1"/> 
        </constructor-arg> 
      </bean> 
       
      <bean id="bean1" class="com.hebeu.model.Address"> 
        <property name="fulladdress" value="YiLong Road, CA 188"></property> 
      </bean> 
       
    </beans> 
    그것은 실제로 구조 함수의 매개 변수 유형이 자동으로 조립된다.이것은 만약에 하나의 bean의 데이터 형식이 다른 bean의 구조기 파라미터의 데이터 형식과 같다면 자동으로 조립된다는 것을 의미한다.
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기