2014-03-19 4 views
0

나는봄에 두 개의 콩을 위해 자동 배선을 사용하는 방법은 무엇입니까?

아래에있는 내 코드를 확인 beans.please 이틀 동안 Color.java

public class Color { 

private String baseColor; 

private String textureColor; 

public String getBaseColor() { 
    return baseColor; 
} 

public void setBaseColor(String baseColor) { 
    this.baseColor = baseColor; 
} 

public String getTextureColor() { 
    return textureColor; 
} 

public void setTextureColor(String textureColor) { 
    this.textureColor = textureColor; 
} 

@Override 
public String toString() { 
    return baseColor + " base skin color and " + textureColor + " texture color." ; 

} 

}

Behaviour.java

public class Behaviour{ 

private String behaviourType; 



public String getBehaviourType() { 
    return behaviourType; 
} 

public void setBehaviourType(String behaviourType) { 
    this.behaviourType = behaviourType; 
} 


} 
자동 배선을 적용하는 새로운 오전

Cat .java

public class Cat { 

private String name; 

private Color color; 
    private Behaviour behaviour; 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public Color getColor() { 
    return color; 
} 

public void setColor(Color color) { 
    this.color= color; 
} 
public Color getBehaviour() { 
    return behaviour; 
} 

public void setBehaviour(Behaviour behaviour) { 
    this.behaviour= behaviour; 
} 
@Override 
public String toString() { 
    return "The " + name + " has " + color.toString(); 

} 
} 

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:task="http://www.springframework.org/schema/task" 
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd"> 

    <bean id="color" class="com.javacodegeeks.snippets.enterprise.Color"> 
     <property name="baseColor" value="white" /> 
     <property name="textureColor" value="grey" /> 
    </bean> 

    <bean id="cat" class="com.javacodegeeks.snippets.enterprise.Cat"> 
     <property name="name" value="cat" /> 
     <property name="color" ref="color" /> 
       <property name="behaviour" ref="behaviour" /> 
    </bean> 
      <bean id="behaviour" class="com.javacodegeeks.snippets.enterprise.Behaviour"> 
     <property name="behaviourType" value="Somebevhaviour" /> 

    </bean> 
    </beans> 

그것은 잘 일하고있어하지만 난 자동차 배선 (요소 별명)을 applicationContext.xml 파일

답변

1

을 작성하기위한 하나 개의 도움을 사용하여 의존성을 적용 할 다음은 좋은 예제 사이트 (http://www.mkyong.com/spring/spring-autowiring-by-name/)입니다.이를 배우려면 샘플 코드를 사용해보십시오.

예를 들면. 당신의 고양이 콩은 아래와 같이 자동 와이어가 될 수 있으므로 색깔과 행동 빈은 자동 배선됩니다.

<bean id="cat" class="com.javacodegeeks.snippets.enterprise.Cat" autowire="byName"> 
     <property name="name" value="cat" /> 
</bean> 
1

다음과 같이 수업을 변경하십시오. 이제

Cat.java

@Component 
public class Cat { 

    @Value("${cat.name}") 
    private String name; 

    @Autowired 
    private Color color; 

    @Autowired 
    private Behaviour behaviour; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Color getColor() { 
     return color; 
    } 

    public void setColor(Color color) { 
     this.color = color; 
    } 

    public Behaviour getBehaviour() { 
     return behaviour; 
    } 

    public void setBehaviour(Behaviour behaviour) { 
     this.behaviour = behaviour; 
    } 

    @Override 
    public String toString() { 
     return "The " + name + " has " + color.toString(); 

    } 
} 

Behaviour.java

@Component 
public class Behaviour { 

    @Value("${behaviour.behaviourType}") 
    private String behaviourType; 

    public String getBehaviourType() { 
     return behaviourType; 
    } 

    public void setBehaviourType(String behaviourType) { 
     this.behaviourType = behaviourType; 
    } 

} 

Color.java

@Component 
public class Color { 

    @Value("${color.basecolor}") 
    private String baseColor; 

    @Value("${color.textureColor}") 
    private String textureColor; 

    public String getBaseColor() { 
     return baseColor; 
    } 

    public void setBaseColor(String baseColor) { 
     this.baseColor = baseColor; 
    } 

    public String getTextureColor() { 
     return textureColor; 
    } 

    public void setTextureColor(String textureColor) { 
     this.textureColor = textureColor; 
    } 

    @Override 
    public String toString() { 
     return baseColor + " base skin color and " + textureColor 
       + " texture color."; 

    } 
} 

app.properti를 만들 다음과 같은 속성을 가진 es 파일

cat.name=billy 
behaviour.behaviourType=sobor 
color.basecolor=white 
color.textureColor=black 

마지막으로 응용 프로그램 컨텍스트 파일을 다음과 같이 수정하십시오.

<context:annotation-config/> 
<context:component-scan base-package="com.kp"></context:component-scan> 

<context:property-placeholder location="classpath*:app.properties"/> 

정의한 콩을 제거하십시오. 고유 한 클래스 유형이 있으므로 Autowire 할 필요가 없습니다.

관련 문제