Head에 등록하는 경우(byName)
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd"
default-autowire="byName">
<!--
AutoWire: 자동주입(이름 / 타입을 이용)(직접 입력)
빈 부분을 찾아서 자동으로 주입 (<property name="cat" ref="xx"/>를 입력하지 않아도 main에서 사용 가능)
1. byType: 넣을 게 딱 하나씩만 있을 때 사용 가능(아니면 뭘 넣어야 할지 판단 못함)
2. byName: dto의 멤버변수와 똑같은 id를 찾아서 입력
-->
<bean id="cat" class="cohttp://m.spring.Cat">
<property name="catName" value="야옹이"></property>
<property name="catAge" value="10"></property>
</bean>
<bean id="cat2" class="cohttp://m.spring.Cat"> <!-- 멤버변수 id가 cat이기 때문에 입력 X -->
<property name="catName" value="나비"></property>
<property name="catAge" value="20"></property>
</bean>
<bean id="dog" class="cohttp://m.spring.Dog"> <!-- id가 yy면 에러 -->
<property name="dogName" value="멍멍이"></property>
</bean>
<bean id="onePerson" class="cohttp://m.spring.Person">
<!-- <property name="cat" ref="xx"/> -->
<!-- <property name="dog" ref="yy"></property> -->
<property name="userName" value="홍길동"></property>
</bean>
</beans>
Heda에 등록하는 경우(byType)
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd"
default-autowire="byType">
<!--
AutoWire: 자동주입(이름 / 타입을 이용)(직접 입력)
빈 부분을 찾아서 자동으로 주입 (<property name="cat" ref="xx"/>를 입력하지 않아도 main에서 사용 가능)
-->
<bean id="xx" class="cohttp://m.spring.Cat"> 겹치는 타입이 없어야 함
<property name="catName" value="야옹이"></property>
<property name="catAge" value="10"></property>
</bean>
<bean id="yy" class="cohttp://m.spring.Dog">
<property name="dogName" value="멍멍이"></property>
</bean>
<bean id="onePerson" class="cohttp://m.spring.Person">
<!-- <property name="cat" ref="xx"/> -->
<!-- <property name="dog" ref="yy"></property> -->
<property name="userName" value="홍길동"></property>
</bean>
</beans>
bean의 속성으로 등록하는 경우(byType)
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd"
>
<!--
AutoWire: 자동주입(이름 / 타입을 이용)(직접 입력)
빈 부분을 찾아서 자동으로 주입 (<property name="cat" ref="xx"/>를 입력하지 않아도 main에서 사용 가능)
1. byType: 넣을 게 딱 하나씩만 있을 때 사용 가능(아니면 뭘 넣어야 할지 판단 못함)
2. byName: dto의 멤버변수와 똑같은 id를 찾아서 입력
-->
<bean id="xx" class="cohttp://m.spring.Cat">
<property name="catName" value="야옹이"></property>
<property name="catAge" value="10"></property>
</bean>
<!--
<bean id="cat2" class="cohttp://m.spring.Cat"> 멤버변수 id가 cat이기 때문에 입력 X
<property name="catName" value="나비"></property>
<property name="catAge" value="20"></property>
</bean>
-->
<bean id="yy" class="cohttp://m.spring.Dog">
<property name="dogName" value="멍멍이"></property>
</bean>
<bean id="onePerson" class="cohttp://m.spring.Person" autowire="byType"><!-- autowire을 속성으로 추가 -->
<!-- <property name="cat" ref="xx"/> -->
<!-- <property name="dog" ref="yy"></property> -->
<property name="userName" value="홍길동"></property>
</bean>
</beans>
Bean + Primary(주입 대상 선택)
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd"
>
<!--
AutoWire: 자동주입(이름 / 타입을 이용)(직접 입력)
빈 부분을 찾아서 자동으로 주입 (<property name="cat" ref="xx"/>를 입력하지 않아도 main에서 사용 가능)
1. byType: 넣을 게 딱 하나씩만 있을 때 사용 가능(아니면 뭘 넣어야 할지 판단 못함)
2. byName: dto의 멤버변수와 똑같은 id를 찾아서 입력
-->
<bean id="xx" class="cohttp://m.spring.Cat">
<property name="catName" value="야옹이"></property>
<property name="catAge" value="10"></property>
</bean>
<bean id="yy" class="cohttp://m.spring.Cat" primary="true"> <!-- 자동 주입을 설정(primary="true") -->
<property name="catName" value="나비"></property>
<property name="catAge" value="20"></property>
</bean>
<bean id="zz" class="cohttp://m.spring.Cat">
<property name="catName" value="몽크"></property>
<property name="catAge" value="30"></property>
</bean>
<bean id="dd" class="cohttp://m.spring.Dog"> <!-- id가 yy면 에러 -->
<property name="dogName" value="멍멍이"></property>
</bean>
<bean id="onePerson" class="cohttp://m.spring.Person" autowire="byType">
<!-- <property name="cat" ref="xx"/> -->
<!-- <property name="dog" ref="yy"></property> -->
<property name="userName" value="홍길동"></property>
</bean>
</beans>
Bean + Candidate=false(주입 대상 제외)
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd"
>
<!--
AutoWire: 자동주입(이름 / 타입을 이용)(직접 입력)
빈 부분을 찾아서 자동으로 주입 (<property name="cat" ref="xx"/>를 입력하지 않아도 main에서 사용 가능)
1. byType: 넣을 게 딱 하나씩만 있을 때 사용 가능(아니면 뭘 넣어야 할지 판단 못함)
2. byName: dto의 멤버변수와 똑같은 id를 찾아서 입력
-->
<bean id="xx" class="cohttp://m.spring.Cat" autowire-candidate="false"> <!-- 자동 주입을 차단(autowire-candidate="false") -->
<property name="catName" value="야옹이"></property>
<property name="catAge" value="10"></property>
</bean>
<bean id="yy" class="cohttp://m.spring.Cat" autowire-candidate="false"> <!-- 자동 주입을 차단(autowire-candidate="false") -->
<property name="catName" value="나비"></property>
<property name="catAge" value="20"></property>
</bean>
<bean id="zz" class="cohttp://m.spring.Cat">
<property name="catName" value="몽크"></property>
<property name="catAge" value="30"></property>
</bean>
<bean id="dd" class="cohttp://m.spring.Dog"> <!-- id가 yy면 에러 -->
<property name="dogName" value="멍멍이"></property>
</bean>
<bean id="onePerson" class="cohttp://m.spring.Person" autowire="byType">
<!-- <property name="cat" ref="xx"/> -->
<!-- <property name="dog" ref="yy"></property> -->
<property name="userName" value="홍길동"></property>
</bean>
</beans>
@Autowired
package com.spring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
public class Person {
private String userName;
private int age;
@Autowired
Cat cat;
@Autowired
private Dog dog;
@Override
public String toString() {
return "Person [userName=" + userName + ", age=" + age + ", cat=" + cat + ", dog=" + dog + "]";
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String userName, int age, Cat cat, Dog dog) {
super();
this.userName = userName;
this.age = age;
this.cat = cat;
this.dog = dog;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- Namespaces에서 context 추가 -->
<context:annotation-config></context:annotation-config>
<bean id="cat" class="cohttp://m.spring.Cat">
<constructor-arg name="catName" value="야옹이"/>
<constructor-arg name="catAge" value="20"/>
</bean>
<bean id="pet01" class="cohttp://m.spring.Cat">
<constructor-arg name="catName" value="뭉크"/>
<constructor-arg name="catAge" value="20"/>
</bean>
<bean id="dog" class="cohttp://m.spring.Dog"></bean>
<bean id="person" class="cohttp://m.spring.Person">
<property name="userName" value="홍길동"/>
<property name="age" value="10"/>
</bean>
</beans>
'단순 코드 기록 > Spring' 카테고리의 다른 글
Spring_@Resource (0) | 2024.02.08 |
---|---|
Spring_Multi Config (0) | 2024.02.08 |
Spring_Scope (0) | 2024.02.08 |
Spring_map (0) | 2024.02.08 |
Spring_list (0) | 2024.02.08 |