spring은 기본이 singleton방식이다.

 

singleton이 아닌 새로 생성해 사용하는 방법에 대한 예제 >

 

(1) TestMain
(2) Members.java
(3) MemberDao.java
(4) test05.xml

 

(1) TestMain

package test.di5;

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

 

 

public class TestMain {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("test/di5/test05.xml");
        MemberDao dao = (MemberDao)context.getBean("memberDao");
        dao.insert("홍씨");
        System.out.println("dao:" + dao);
       
        MemberDao dao2 = (MemberDao)context.getBean("memberDao");
        dao2.insert("홍씨");
        System.out.println("dao2:" + dao2);
       
        Members mm = (Members)context.getBean("members");
        mm.print();
    }
}

 

 

  

 

[[ scope ]]
- 기본값으로 singleton이 설정되어 있음.
- prototype : 객체를 요청할때마다 생성한다.
- request : 클라이언트가 요청할때마다 생성(web app에서만 사용가능)
- session : 세션에서만 유효함.(web app에서만 사용가능)
- singleton : 객체를 싱글톤패턴으로 생성(하나만 생성)

; [[ init-method ]] : 객체 생성 시 자동호출됨( 객체 초기화 작업 )

; [[ destroy-method ]] : 객체 소멸시 자동호출됨(객체의 자원해제 등 ..)

 

(4) test05.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">


    <bean id="memberDao" class="test.di5.MemberDao" scope="prototype"
        init-method="init" destroy-method="destroy">
        <property name="url" value="localhost" />
    </bean>

    <bean id="mem" class="java.lang.String">
        <constructor-arg value="김모씨" />
    </bean>
    <bean id="members" class="test.di5.Members">
        <!-- java.util.list의 타입의 파라미터값 넣기 -->
        <property name="list">
            <list>
                <value>홍길동</value>
                <value>홍길서</value>
                <value>홍길남</value>
                <value>홍길북</value>
               <ref bean="mem"/>
            </list>
        </property>
    </bean>
</beans>

 


(2) Members.java

package test.di5;

import java.util.List;

public class Members {
    private List<String> list;
    public void setList(List<String> list) {
        this.list = list;
    }
    public void print(){
        for(String str:list){
            System.out.println(str);
        }
    }
}

 

(3) MemberDao.java

package test.di5;

public class MemberDao {
    private String url;
   
    public void init(){
        System.out.println("[init메소드 호출] dao객체가 초기화되었습니다.!");
    }
    public void destroy(){
        System.out.println("[destroy메소드 호출]dao객체가 소멸되었습니다.!");
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUrl() {
        return url;
    }
    public void insert(String id){
        System.out.println(id + "님을 추가했습니다.");
    }
    public void update(String id){
        System.out.println(id + "님을 수정했습니다.");
    }
    public void delete(String id){
        System.out.println(id + "님을 삭제했습니다.");
    }
    public void getinfo(String id){
        System.out.println(id + "님을 조회했습니다.");
    }
}




'WEB > Spring3.0' 카테고리의 다른 글

SPRING3.0 #07( jdbc )  (0) 2013.01.27
SPRING3.0 #06( annotation )  (0) 2013.01.27
SPRING3.0 #04( 의존관계 )  (0) 2013.01.27
SPRING3.0 #03( DI의 시작이랄까.. )  (0) 2013.01.27
SPRING3.0 #02( new사용과 spring bean사용하기. )  (0) 2013.01.27

+ Recent posts