본문 바로가기

spring/예제

스프링 구조를 이해하는 예제4(의존관계 자동 설정(autowire) 옵션)

ResultMain.java


package com.test4;


import org.springframework.context.support.AbstractApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;


public class ResultMain {

public static void main(String[] args){

AbstractApplicationContext context=new ClassPathXmlApplicationContext("com/test4/applicationContext.xml");

UserService service=(UserService)context.getBean("userService"); // bean id를 명시해줌

System.out.println(service.getUserData());


}

}


================================================================================================================================================

User.java


package com.test2;


public interface User {

public String result(); 

}



================================================================================================================================================

UserImpl.java

package com.test4;

public class UserImpl implements User{
private String name;
private int age;
private String tel;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String result() {
String s=name+"님 나이는 "+age+"이고 전화는 "+tel;
return s;
}
}


================================================================================================================================================

UserService.java

package com.test4;

public class UserService {
private User user;
public void setUser(User user){
this.user=user;
}
public String getUserData(){
return user.result();
}
}

================================================================================================================================================

applicationContext.xml


<?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:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:util="http://www.springframework.org/schema/util"

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="

   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/util http://www.springframework.org/schema/util/spring-util-3.2.xsd

        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">          

<bean id="user" class="com.test4.UserImpl">

<property name="name" value="스프링"/>

<property name="age" value="10"/>

<property name="tel" value="010-111-1111"/>

</bean>


<!-- 

의존관계 자동 설정(autowire)

byName : 프로퍼티와 동일한 이름을 갖는 빈객체설정(setter 필요)

byType : 프로퍼티타입과 같은 빈객체를 설정

constructor : 생성자 파라미터 타입과 같은 타입의 빈객체를 생성자에 전달

autodetect : constructor 방식을 적용하고 없으면 byType 방식으로 의존관계 설정

 -->

<bean id="userService" class="com.test4.UserService" autowire="byName"/>


</beans> 



======================================================================================================================================================


ResultMain.java를 실행시킨 결과


스프링님 나이는 10이고 전화는 010-111-1111