[스프링 컨테이너의 생명주기(lifecycle)]
: 스프링 컨테이너가 어떤 형식과 차례로 구동되는지를 파악해보면 될 것 같다.
Student.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | public class Student { private String name; private int age; private ArrayList<String> hobbies; private double height; private double weight; public Student(String name, int age, ArrayList<String> hobbies) { this.name = name; this.age = age; this.hobbies = hobbies; } 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 ArrayList<String> getHobbies() { return hobbies; } public void setHobbies(ArrayList<String> hobbies) { this.hobbies = hobbies; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } } | cs |
ctx_example01.xml
1 2 3 4 5 6 7 8 9 10 11 | <bean id="student" class="com.yul.ex04_example01.Student"> <constructor-arg value="yul"/> <constructor-arg value="100"/> <constructor-arg> <list> <value>기도하기</value> </list> </constructor-arg> </bean> </beans> | cs |
MainClass.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class MainClass { public static void main(String[] args) { // 컨테이너 생성 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); // 컨테이너 설정 ctx.load("classpath:ctx_example01.xml"); ctx.refresh(); // 컨테이너 사용 Student student = ctx.getBean("student", Student.class); System.out.println("이름 : " + student.getName()); System.out.println("나이 : " + student.getAge()); // 컨테이너 종료 ctx.close(); } } | cs |
*
스프링 컨테이너의 생명주기 :
컨테이너 생성 -> 컨테이너 설정 -> 컨테이너 사용 -> 컨테이너 종료
new GenericXmlApplicationContext() 안에 classpath를 바로 써줄 수도 있다.
그러면 컨테이너 생성과 컨테이너 설정을 동시에 하는 셈이지만
ctx.load메서드를 통해 컨테이너를 설정해서 classpath를 지정해주면 반드시 refresh를 호출해주어야 한다.
'프로그래밍 > Spring' 카테고리의 다른 글
Spring / 스프링 빈의 범위(Bean Scope) (0) | 2018.04.07 |
---|---|
Spring / 스프링 빈의 생명 주기(life cycle) (0) | 2018.04.07 |
Spring / xml과 Java를 같이 사용하는 방법 (0) | 2018.04.07 |
Spring / Java를 통한 DI 설정방법 (0) | 2018.04.07 |
Spring / DI 사용의 장점 (0) | 2018.04.07 |