spring은 기본이 singleton방식이다.
(2) Members.java
(3) MemberDao.java
(4) test05.xml
(1) TestMain
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();
}
}
- 기본값으로 singleton이 설정되어 있음.
- prototype : 객체를 요청할때마다 생성한다.
- request : 클라이언트가 요청할때마다 생성(web app에서만 사용가능)
- session : 세션에서만 유효함.(web app에서만 사용가능)
- singleton : 객체를 싱글톤패턴으로 생성(하나만 생성)
; [[ init-method ]] : 객체 생성 시 자동호출됨( 객체 초기화 작업 )
; [[ destroy-method ]] : 객체 소멸시 자동호출됨(객체의 자원해제 등 ..)
(4) test05.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.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
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
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 |