본문 바로가기

기존카테고리/Spring_basic1

빈의 범위(Scope)



Person.java


package com.test.ex02;


public class Person {

private String name;

private int age;

public Person() {}

public Person(String name, int age){

this.name = name;

this.age = age;

}

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;

}

}





PersonTest.java


package com.test.ex02;


import org.springframework.context.support.AbstractApplicationContext;

import org.springframework.context.support.GenericXmlApplicationContext;


public class PersonTest {


public static void main(String[] args) {

AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:person.xml");

Person person1 = ctx.getBean("person", Person.class);

System.out.println("name: "+person1.getName());

System.out.println("age: "+person1.getAge());

System.out.println("Person1: "+person1);

System.out.println("============================");

person1.setName("양준혁");

Person person2 = ctx.getBean("person", Person.class);

System.out.println("name: "+person2.getName());

System.out.println("age: "+person2.getAge());

System.out.println("Person2: "+person2);

System.out.println("============================");

System.out.println("person1.name: "+person1.getName());

System.out.println("person2.name: "+person2.getName());

if(person1.equals(person2)){

System.out.println("같아");

}else{

System.out.println("달라");

}

}

}




person.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.xsd">


<bean id="person" class="com.test.ex02.Person" scope="singleton">

<constructor-arg value="이승엽" />

<constructor-arg value="42" />

</bean>


</beans>





결과:

scope


scope="singleton"


name: 이승엽

age: 42

Person1: com.test.ex02.Person@77cd7a0

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

name: 양준혁

age: 42

Person2: com.test.ex02.Person@77cd7a0

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

person1.name: 양준혁

person2.name: 양준혁

같아




scope="prototype"


name: 이승엽

age: 42

Person1: com.test.ex02.Person@343f4d3d

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

name: 이승엽

age: 42

Person2: com.test.ex02.Person@6eebc39e

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

person1.name: 양준혁

person2.name: 이승엽

달라





'기존카테고리 > Spring_basic1' 카테고리의 다른 글

IoC(Inversion of Control- 제어의 역전)  (0) 2017.07.22
XML 스키마 기반의 AOP 예제1  (0) 2017.07.11
빈의 Life Cycle  (0) 2017.07.10
JAVA 속에 XML 코드 삽입  (0) 2017.07.10
XML 속에 JAVA 코드 삽입  (0) 2017.07.10