백기선 whiteship2000@gmail.com http://whiteship.tistory.com Advanced bean wiring 백기선 whiteship2000@gmail.com http://whiteship.tistory.com www.springframework.co.kr.

Slides:



Advertisements
Similar presentations
Transaction ㅇ Transaction 을 직접 구현하려면, 까다로운 설계와 복잡한 코드를 필요로 하고 수정에 공수가 많이 들게 된다. ㅇ 스프링에서 제공하는 Transaction Manager 를 사용하여 쉽고 간편하게 어려운 트랜잭션을 해결할 수 있다. xml.
Advertisements

작성자조성웅 작성일자 기본환경 1. Java : Eclipse : Tomcat : 6.0 이상 4. DB : MySQL File System : DFS 6. Framework - Spring : JPA 및 CXF.
의료자원 규제현황과 개선방향 자원평가실. 의료자원 관리 개요 규제개혁 토론과제.
 서구학자들의 비교연구 대상 - 유럽으로부터 차용 / 적응된 제도 - 낮은 범죄율  모방자로서의 일본 - 봉건시대 ( 막부시대 ) 는 네덜란드만 교류 미국의 압력으로 개항 막부시대 종료, 천황 ( 명치 ) 시대 복귀 - 명치시대 ( )
성공적 취업을 위한 청년취업아카데미 과정 소개 2012 년 06 월 청년취업아카데미 사업 소개 (1) 학부졸업 최소 70% ~100% 취업 최소 70% ~100% 취업 전국 대학의 학부 졸업 후 취업률 약 60% 청년취업아카데미 를 통한 맞춤형 취업교육프로그램.
지식정보학부 김선호 송승재 신동욱 정승홍 정충현
아름다운 이들의 행복한 길음안나의 집.
연 합 남 전 도 회 월 례 회 1부 예배- 찬 송 장 다같이 2011년 1월 2일 1부 예배- 찬 송 장 다같이 기 도
사 업 계 획 2011년 제1호 - 2월 1일 2011 주 안에서 소통하며 화합하고 참여하며 헌신하는 남신도회
고급자바프로그래밍 (Advanced Java Programming)
Spring MVC ㅇ 스프링 MVC 구성요소 설명 DispatcherServlet 클라이언트의 요청을 컨트롤러에게 전달하고
XML 응용 프로그래밍 3장 XML 문서 제작 기본
JPetStore 분석자료 1.0 Spring framework 작성자 : 김태완.
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
9 표준 액션.
Overview : XML과 Database
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 Bean을 이용한 회원가입 양식 작성하기
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
객체 지향 원리 송치형.
10장 객체-지향 프로그래밍 II ©창병모.
DB표준화 작업의 현황과 과제 Presentation
InstallShield Professional Services ( Services Pack / Education / Consulting ) ㈜소프트뱅크 커머스.
IOC, DI 2015 Web Service Computing.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
백기선 Springing into action 백기선
ER-Win 사용 방법.
XML DOM (Document Object Model)
Chapter 15 : Struts 프레임워크 1. chapter 15 : Struts 프레임워크 1.
ASP.NET Mobile Controls
JSP와 자바 빈즈 JSP 빈즈 구조를 이해하고 활용한다. useBean 액션 활용법을 익힌다.
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
날짜: 팀명: TEAM-SIX 발표자: 이기영
Eclipse 플러그인을 활용한 자바/JSP 개발.
Rhapsody + MFC 개발 가이드.
컴퓨터응용과학부 Java Enterprize(DB) 제 7 주
JSP 개발 환경 소프트웨어 설치 JSP 개발 환경 설정 JSP 프로그램 입력 및 실행
DataScience Lab. 박사과정 김희찬 (월)
3. Spring 프레임워크의 IoC 컨테이너 개념
Flex를 이용한 교육용 웹페이지 학번: 이름 : 김병조 지도교수 : 이광세.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
C# 09장. 상속성.
Spring 프레임워크의 이해 3. Spring IoC 이해 및 활용.
매스커뮤니케이션 신문 목원대학교 서 진 희.
SpringFramework 중간고사 요약 REST by SpringFramework.
컴퓨터공학실습(I) 3주 인공지능연구실.
Bingo 빙고 따라가기.
Spring DI 이해 및 활용.
예술치료 실습보고서 미술치료 음악치료 모래상자치료 연극치료 학 교 : 백석대학원 학 과 : 특수심리치료
3장. 웹로직 서버에서의 서블릿과 JSP의 운용 3-1. 서블릿, JSP를 실행하기 전의 환경 설정
XML-II (eXtensible Markup Language) DTD/DOM
Spring Framework 플랫폼개발실 김광욱
백기선 Advising beans 백기선
소프트웨어 개발보안 설명 및 예시 ‘ (수) 22: 기 배주진.
[ 단원 06 ] 상속과 다형성.
자동 매크로 만들기 매크로 실행하기 매크로 편집하고 응용하기
2장 비주얼베이직 시작하기 2.1 비주얼베이직 프로그래밍 스타일 2.2 비주얼베이직 시작하기.
제안 목적 고객성향 분석으로 매출 증대 유사업체 분석으로 신상품 홍보 원가요소 분석 및 피드백으로 원가율 관리
청각기관의 구조와 기능2 옥정달.
JSP 빈즈 1.JSP 빈즈? JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를.
C# 10장. 참조형.
2013년도 상반기 고객만족도 조사 결과 보고서
2013년도 하반기 고객만족도 조사 결과 보고서
Architecture.
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
11 상위 계층.
김희정 Bridge Pattern.
2.4 스프링 테스트 적용.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
우수사원 연수 제안서 2-1. 항공, 호텔, 식사, 차량 세부 안내 (지역순서대로 작성 발리-싱가포르-괌)
한국디지털미디어 고등학교 번 조성혁 HTML 5는 HTML4의 다음 버전으로 특정 plug-in같은 것 없이 web에서 진보,발전된 application을 만들 수 있도록 HTML을 발전시킨 것이다.
Presentation transcript:

백기선 whiteship2000@gmail.com http://whiteship.tistory.com Advanced bean wiring 백기선 whiteship2000@gmail.com http://whiteship.tistory.com www.springframework.co.kr

Declaring parent and child beans 상속은 다 아시죠? Spring bean 설정에서도 상속이 가능합니다. parent abstract www.springframework.co.kr

Abstracting a base bean type www.springframework.co.kr

Abstracting a base bean type www.springframework.co.kr

소스 코드 보기 test/chapter3/BeanAbstractingTest.java private Instrumentalist kenny; private Instrumentalist david; private Instrumentalist frank; www.springframework.co.kr

Overriding inherited properties 상속 받은 속성을 재정의 할 수 있습니다. www.springframework.co.kr

Abstracting common properties 서로 다른 타입에 존재하는 공통 속성을 추상화 할 수 있을까? www.springframework.co.kr

Abstracting common properties www.springframework.co.kr

소스 코드 보기 test/chapter3/BeanAbstractingTest.java www.springframework.co.kr

Applying method injection www.springframework.co.kr

Applying method injection Method Replacement 런타임 때 기존의 메소드를 다른 구현체로 대체 합니다. Getter Injection 런타임 때 기존의 메소드를 Spring Context에 있는 객체를 반환하는 메소드로 대체 합니다. www.springframework.co.kr

Basic method replacement MethodReplacer 인터페이스 구현. <replaced-method> 엘리먼트 사용 name replacer www.springframework.co.kr

소스 코드 보기 test/chapter3/MethodInejctionTest.java Magician, MagicBox MagicBox.getContext() www.springframework.co.kr

Using getter injection <lookup-method> name bean method replacement로 대체 가능 www.springframework.co.kr

소스 코드 보기 test/chapter3/MethodInejctionTest.java Instrumentalist.perform(); www.springframework.co.kr

Injecting non-Spring beans 모든 객체가 Spring Container에서 만들어 지는 것은 아닙니다. 그럼 그런 객체들은 Spring Container가 관리하지 못하는 건가요? @Configurable <bean> abstract <aop:spring-configured /> www.springframework.co.kr

소스 코드 예제 new 키워드 사용하여 객체 생성하기 속성들이 설정되었는지 확인하기 test/chapter3/ConfigurableTest.java www.springframework.co.kr

Registering custom property editors 속성을 설정할 때 지금까지 모두 “문자열”로 넣었습니다. Spring이 워낙 똑똑해서 기본 타입을 알아서 변환해서 넣어줬습니다. 그런데... Custom Type으로도 Spring이 알아서 변환해 줄 수 있을까요? 없습니다. 개발자가 Spring을 조금 도와줘야 합니다. www.springframework.co.kr

Registering custom property editors PropertyEditorSupport 상속하여 구현 setAsText() getAsText() org.springframework.beans.factory.conf ig.CustomEditorConfigurer 빈으로 등록하기 customEditors 속성 설정 www.springframework.co.kr

소스 코드 보기 Custom Property Editor 사용하지 않을 때의 불편함 사용했을 때의 간편함. test/chapter4/PropertyEditorTest.java www.springframework.co.kr

Working with Spring’s special beans 다른 bean 또는 beanFactory를 조작하는 bean. Property 파일을 읽어 들이는 bean. 국제화 지원과 같이 Property에서 텍스트를 읽어 오는 bean. 다른 bean에서 발생한 이벤트를 대기하거나 처리하는 bean. Container에서의 자신의 식별자를 알고 있는 bean. www.springframework.co.kr

Postprocessing beans bean 초기화 이전 또는 이후에 bean을 조작할 수 있습니다. BeanPostProcessor 인터페이스 구현하기. 구현한 BeanPostProcessor 등록하기. www.springframework.co.kr

소스 코드 보기 Fuddifier test/chapter3/BeanPostProcessorTest.ja va r또는 l을 w로 변환. R또는 L을 W로 변환. test/chapter3/BeanPostProcessorTest.ja va www.springframework.co.kr

Spring이 제공하는 BeanPostProcessor ApplicationContextAwareProcessor DefaultAdvisorAutoProxyCreator www.springframework.co.kr

Postprocessing the bean factory 모든 bean 초기화 전에(BeanPostProcessor도 포함해서) Spring Container를 조작할 수 있습니다. BeanFactoryPostProcessor 인터페이스 구현하기. 구현한 BeanFactoryPostProcessor 등록하기. www.springframework.co.kr

소스 코드 보기 BeanCounter test/chapter3/BeanPostProcessorTest.ja va Spring Container에 등록된 bean의 개수를 세는 BeanFactoryPostProcessor. test/chapter3/BeanPostProcessorTest.ja va 콘솔 창의 로그 메시지 중에 BEAN COUNT: 3 출력. www.springframework.co.kr

Spring이 제공하는 BeanFactoryPostProcessor CustomerEditorConfigurer PropertyPlaceholderConfigurer www.springframework.co.kr

Externalizing configuration properties 설정 내용을 별도의 파일로 빼내는 것이 유용한 경우가 있습니다. 서버나 DB와 같은 환경에 종속적인 데이터. www.springframework.co.kr

Externalizing configuration properties PropertyPlaceholderConfigurer 사용. www.springframework.co.kr

Resolving text messages 화면에 보여줄 메시지를 뷰에 직접 입력하지 않는 것이 좋을 때가 있습니다. 국제화 지원 자주 바뀌는 문구 MessageSource 인터페이스 사용. www.springframework.co.kr

Resolving text messages 프로퍼티 파일 작성 http://decoder.tistory.com/48 ResourceBundleMessageSource 등록하기 bean의 이름을 messageSource로 하면 applicationContext가 자동으로 읽어들임. 사용하기 자바 코드에서는 API 호출 context.getMessage("computer", new Object[0], locale); 뷰에서는 Spring 태그 사용. <spring:message code="computer"/> www.springframework.co.kr

Decoupling with application events 이벤트 핸들러와 이벤트를 발생 시키는 객체들은 서로가 서로를 몰라도 됩니다. www.springframework.co.kr

Decoupling with application events 이벤트 클래스 작성하기. ApplicationEvent 상속하여 구현. 이벤트 발생 시키기. ApplicationContext의 publishEvent() 메소드 사용. 정확하게는 ApplicaionContext 인터페이스가 상속한 EventPublisher 인터페이스의 메소드 입니다. 이벤트 핸들러 작성하기 ApplicationListener 인터페이스 구현. www.springframework.co.kr

Making beans aware BeanNameAware BeanFactoryAware 애플리케이션 내부에 같은 객체가 두 개 이상일 때 각각을 구분하기 위한 식별자로 사용할 수 있습니다. BeanFactoryAware ApplicationContextAware Spring Container를 사용할 필요가 있을 때 구현 합니다. MessageSource 기능이 필요할 때. EventPublisher 기능이 필요할 때. ... www.springframework.co.kr

Scripting beans 자바는 정적인(static) 언어입니다. 실행 도중에 프로그램을 변경할 수 없습니다. 스프링은 스크립트 언어도 POJO로 주입(Injection) 할 수 있습니다. www.springframework.co.kr

Scripting beans example POJO에 Script를 주입하기. POJO 구현하기 POJO가 사용할 Script의 인터페이스 구현하기 Spring Context에 등록하기 Coconut Lime www.springframework.co.kr

스크립트 주입하기 1. lang 네임스페이스 추가하기. www.springframework.co.kr

스크립트 주입하기 2. Ruby, Groovy, BeanShell 파일 작성하기 lang 엘리먼트로 등록하기. 필요한 라이브러리 추가하기. jruby.jar groovy-1.0.jar bsh-2.0b4.jar asm-2.2.3.jar antlr-2.8.6.jar backport-util-concurrent.jar(lib/concurrent/ 위치함) www.springframework.co.kr

스크립트 속성 주입하기 <lang:property> 엘리먼트 사용하기. name ref JRuby를 Groovy에 주입하고, 그것을 다시 BeanShell에 주입하는 것이 가능합니다. getBean()으로 원하는 스크립트 객체를 자바 애플리케이션에서 사용할 수 있습니다. www.springframework.co.kr

스크립트 리로딩 시간 설정하기 lang 엘리먼트의 refresh-check-delay 속성에 밀리초로 설정 예) 5초 마다 리프래쉬 하기 refresh-check-delay=“5000” www.springframework.co.kr

설정 파일에서 스크립트 정의하기 <![CDATA[…]]> 와 ]]> 사이에 스크립트 정의하기. XML이 위의 태그 안에 있는 코드를 파싱하는 것을 방지하기 위한 것입니다. www.springframework.co.kr

Summary Bean 설정 추상화하기 Method Injection Spring Container 밖에서 생성한 객체 설정하기 ApplicationContext의 기능 PropertyEditor MessageResolver EventPublisher 스크립트 언어 사용하기 www.springframework.co.kr

발표에 대한 질문 또는 피드백 www.springframework.co.kr

감사합니다. www.springframework.co.kr