2015년 7월 20일 월요일

신입SW인력을 위한 실전 자바(Java) 스프링(Spring) 동영상과정 07_ Life Cycle

이 게시물은
http://www.wiz.center/237



해당 링크를 청취하고 작성한 글입니다.

본인 이해도 확인을 위해서 작성한 것이니
스프링에 대해서 알고 있다면 쑥 훝어보고 끝내시고

좀 깊게 알고 싶다면 위의 링크부터 시작해서
총 30개 강의로 이루어진 스프링 과정을 청취하세요

1. 스프링 컨테이너 및 bean 의 생명주기
    Create -> Init -> Service -> Destroy
    4단계를 거치고, 컨테이너가 Init 되는 시기부터
     Bean의 생명주기(생명주기는 컨테이너와 동일) 가 시작되며
     컨테이너 Destroy 전에 Bean이 소멸된다.
    Bean은 Init, Destroy 2개 단계에서 pre 함수를 실행할 수 있는데
     작성방법은 2가지가 있다. 인터페이스를 Implements 하거나
     어노테이션을 이용하는 방법이다.
     컨테이너는 load 주입후 생성되고, 빈 객체는 refresh() 함수 실행시
     생성된다.

확인용 예제는 강의안에 있는 예제로 충분히 설명가능함.
그중 하나를 실행해보자면..

-------------------------------
예제 1. bean method 적용하기
 프로젝트 생성 후 작업 진행

작성1. resource 밑에 applicationCTX.xml 을 아래와 같이 작성



 

 
  
  
 

 
  
  
 


<!-- 여기서 보면 2개의 bean을 설정함 -->

작성2. src 밑에 Student.java 을 작성한다.

package com.javalec.ex;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class Student implements InitializingBean, DisposableBean{

 private String name;
 private int age;
 
 public Student(String name, int age) {
  this.name = name;
  this.age = age;
 }

 public String getName() {
  return name;
 }
 
 public int getAge() {
  return age;
 }

 @Override
 public void afterPropertiesSet() throws Exception {
  // TODO Auto-generated method stub
  System.out.println("afterPropertiesSet()");
 }

 @Override
 public void destroy() throws Exception {
  // TODO Auto-generated method stub
  System.out.println("destroy()");
 }
 
}

//implments 를 이용한 bean 생명주기 적용
// 필요하면 적용하고 필요없을시에는 안해도 상관없음


작성3. src 밑에 OtherStudents.java 작성

package com.javalec.ex;

import javax.annotation.*;

public class OtherStudent  {

 private String name;
 private int age;
 
 public OtherStudent(String name, int age) {
  this.name = name;
  this.age = age;
 }

 public String getName() {
  return name;
 }
 
 public int getAge() {
  return age;
 }
 
 @PostConstruct
 public void initMethod() {
  System.out.println("initMethod()");
 }
 
 @PreDestroy
 public void destroyMethod() {
  System.out.println("destroyMethod()");
 }

}


//여기서는 어노테이션을 이용해서 구현함


작성4. 테스트 결과를 확인할 MainClass.java 를 작성

package com.javalec.ex;

import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

 public static void main(String[] args) {
  
  GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();

  ctx.load("classpath:applicationCTX.xml");
  
  ctx.refresh();
  
  ctx.close();
  
 }
 
}


결과 )  Bean 


----------------------------------------------------------

2. 스프링 빈 범위
    Spring  에서는 5가지의 scope 를 지원한다.
     이중 singleton은 지정하지 않아도 기본 옵션으로 설정되어 있고
     request, session, global session 은 웹 환경에서 설정가능한
     scope 다.
     설정은 bean class 설정시 경로 옆에 scope를 추가하여
      알맞는 키워드를 넣으면 된다.



댓글 없음:

댓글 쓰기