스마트웹앱콘텐츠전문가/프레임워크

[4.22]스프링 프레임 워크( 자바 설정을 이용한 의존성 주입 : DI + 빈 라이프사이클)

9D4U 2016. 4. 22. 11:43
728x90
반응형

[스프링]

<<자바 설정 파일>>

<두 개 이상의 클래스를 사용하여 설정 : 환경 파일이 2개 이상임>

방법1,2

1.한 쪽 자바 설정에 @Autowired를 사용하여 다른 쪽의 자바 설정 추가

2.@Import 애노테이션을 사용 : 한 쪽 자바 설정에 @Configuration 밑에 @Import(클래스명.clas)를 입력


<자바 코드 설정과 XML 설정을 혼합하여 사용하기>

방법1,2

1. 자바 설정에서 XML 설정 임포트하기 : @Configuration밑에 @ImportResource("classpath:xxx.xml")을 사용

=> 메인클래스에서 AnnotationConfigApplicationContext(클래스명.class)사용

2. XML 설정에서 자바 설정 임포트하기 : XML 설정에서 <context:annotation-config/>태그와 <bean class="패키지명.클래스명 />를 사용

==>메인 클래스에서 GenericXmlApplicationContext("classpath:xxx.xml")사용


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



[빈 라이프사이클과 범위]

<스프링 컨테이너 초기화와 종료>

-컨테이너 초기화(context ctx= new ...context()) -> 빈 객체의 생성과 의존 객체 주입 및 초기화

-컨테이너 종료(ctxs.close) -> 빈 객체의 소멸



-빈 객체의 라이프사이클 : 객체생성 -> 의존 설정(<property>태그 사용) -> 초기화 -> 빈 사용 -> 소멸


-빈 객체의 초기화와 소멸 : 스프링 인터페이스 중 InitializingBean, DisposableBean 사용,

InitializingBean 인터페이스 구현 시 afterPropertySet()메서드를 반드시 사용(=빈 객체 초기화시기),

DisposableBean  인터페이스 구현 시 destroy() 메서드를 반드시 사용(=빈 객체 소멸시기).



[빈 객체의 초기화와 소멸 예제 결과]

 

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

 

[플젝시]
이 홈페이지 참조
http://thisok.org/bbs/board.php?bo_table=Linux&wr_id=20


[프록시 객체]

프록시는 핵심 기능이외에 부가적인 기능. 즉, 공통 기능 구현에 집중을 한다.
핵심 기능은 각각의 특정 클래스에서 구현


-> 소스를 뜯어고치치 않고, 프록시 객체를 만들어 추가하고 싶은 부가적인 기능을 구현하면됨.(핵심 기능을 손대지 않고, 부수적인 기능을 추가함 : 프록시 패턴)

프록시 패턴 -> AOP(관점지향): 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만듬.


[우분투 12.04]
dconf-editor 사용
http://m.blog.daum.net/bagjunggyu/154

[우분투 이클립스 스프링 참조]
http://nowisgood87.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD%EA%B5%AC%EC%B6%95-6-%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EB%A9%94%EC%9D%B4%EB%B8%90-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%86%B0%EC%BA%A3%EC%84%A4%EC%A0%95

[이클립스에서 만든 프로젝트 배포]
http://attackyourheart.tistory.com/50

[우분투 카카오톡]
http://m.blog.naver.com/mapirus7777/220079428985

728x90