Spring Spring MVC Spring DI Spring AOP Spring
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-1.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-2.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-3.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-4.jpg)
![Spring은 Lightweight Application Framework 5 / 한빛 교육센터 Spring 교육 Spring은 Lightweight Application Framework 5 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-5.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-6.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-7.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-8.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-9.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-10.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-11.jpg)
![Spring DI Spring DI](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-12.jpg)
![Inversion of Control? Dependency Injection? 13 / 한빛 교육센터 Spring 교육 Inversion of Control? Dependency Injection? 13 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-13.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-14.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-15.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-16.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-17.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-18.jpg)
![Factory Pattern 19 / 한빛 교육센터 Spring 교육 Factory Pattern 19 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-19.jpg)
![Factory Pattern 20 / 한빛 교육센터 Spring 교육 Factory Pattern 20 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-20.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-21.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-22.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-23.jpg)
![클래스 의존관계에 대한 Metadata (XML 또는 Property) Spring Framework (Application. Context) 24 / 한빛 클래스 의존관계에 대한 Metadata (XML 또는 Property) Spring Framework (Application. Context) 24 / 한빛](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-24.jpg)
![Inversion of Control (Io. C) 25 / 한빛 교육센터 Spring 교육 Inversion of Control (Io. C) 25 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-25.jpg)
![• EJB • Spring Io. C : Inversion of Control DI : Dependency • EJB • Spring Io. C : Inversion of Control DI : Dependency](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-26.jpg)
![Servlet Container Service Init Create Servlet A Destory Servlet B Servlet Container 27 / Servlet Container Service Init Create Servlet A Destory Servlet B Servlet Container 27 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-27.jpg)
![EJB Container Service Init Create EJB A EJB B Destory EJB Container 28 / EJB Container Service Init Create EJB A EJB B Destory EJB Container 28 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-28.jpg)
![Io. C(DI) Container Service Init Create POJO A Destory POJO B POJO C Io. Io. C(DI) Container Service Init Create POJO A Destory POJO B POJO C Io.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-29.jpg)
![Spring Bean Scope Spring Bean Scope](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-30.jpg)
![Singleton? , Non Singleton? 31 / 한빛 교육센터 Spring 교육 Singleton? , Non Singleton? 31 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-31.jpg)
![Singleton Pattern을 활용한 Singleton 32 / 한빛 교육센터 Spring 교육 Singleton Pattern을 활용한 Singleton 32 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-32.jpg)
![지금까지의 Singleton 구현 방법 public class Message. Service { private static Message. Service instance; 지금까지의 Singleton 구현 방법 public class Message. Service { private static Message. Service instance;](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-33.jpg)
![Spring 기반하의 Singleton 34 / 한빛 교육센터 Spring 교육 Spring 기반하의 Singleton 34 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-34.jpg)
![Spring 프레임워크의 Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Annyoung. Spring 프레임워크의 Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Annyoung.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-35.jpg)
![<bean id="renderer" class="net. javajigi. ioc. Default. Message. Renderer"> <property name="message. Provider"> <ref local=“hi. World. <bean id="renderer" class="net. javajigi. ioc. Default. Message. Renderer"> <property name="message. Provider"> <ref local=“hi. World.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-36.jpg)
![웹 애플리케이션 Servlet. Context(sigle instance) 키(key) 값(value) “org. springframework. web. context. Web. Application. Context. 웹 애플리케이션 Servlet. Context(sigle instance) 키(key) 값(value) “org. springframework. web. context. Web. Application. Context.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-37.jpg)
![Spring 프레임워크의 Non Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Spring 프레임워크의 Non Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-38.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-39.jpg)
![Singleton Instance name = null new Person(); Thread A public class Person { private Singleton Instance name = null new Person(); Thread A public class Person { private](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-40.jpg)
![Singleton Instance name = “예은” person. set. Name(“예은”); public class Person { private String Singleton Instance name = “예은” person. set. Name(“예은”); public class Person { private String](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-41.jpg)
![Singleton Instance name = “주한” person. set. Name(“주한”); public class Person { private String Singleton Instance name = “주한” person. set. Name(“주한”); public class Person { private String](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-42.jpg)
![Singleton Instance name = “주한” person. get. Name(); => 주한 public class Person { Singleton Instance name = “주한” person. get. Name(); => 주한 public class Person {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-43.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-44.jpg)
![Spring Bean Instance 생성 Spring Bean Instance 생성](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-45.jpg)
![new <bean id="message. Provider" class="net. javajigi. di. New. Message. Provider"/> 46 / 한빛 교육센터 new <bean id="message. Provider" class="net. javajigi. di. New. Message. Provider"/> 46 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-46.jpg)
![Factory method <bean id="message. Provider" class="net. javajigi. di. Singleton. Message. Provider" factory-method="get. Instance" /> Factory method <bean id="message. Provider" class="net. javajigi. di. Singleton. Message. Provider" factory-method="get. Instance" />](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-47.jpg)
![Factory. Bean Interface <bean id="message. Provider" class="net. javajigi. di. Message. Provider. Factory. Bean"> <property Factory. Bean Interface <bean id="message. Provider" class="net. javajigi. di. Message. Provider. Factory. Bean"> <property](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-48.jpg)
![<bean id="user. Service" class="net. javajigi. user. service. User. Service. Impl"> <property name="user. DAO"> <ref <bean id="user. Service" class="net. javajigi. user. service. User. Service. Impl"> <property name="user. DAO"> <ref](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-49.jpg)
![<bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user. <bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-50.jpg)
![<bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user. <bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-51.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-52.jpg)
![Spring JDBC Spring JDBC](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-53.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-54.jpg)
![Template Method Pattern 55 / 한빛 교육센터 Spring 교육 Template Method Pattern 55 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-55.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-56.jpg)
![public abstract class Abstract. Class { public void template. Method() { //. . 비지니스 public abstract class Abstract. Class { public void template. Method() { //. . 비지니스](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-57.jpg)
![public class Concrete. Class. A extends Abstract. Class { protected void operation 1() { public class Concrete. Class. A extends Abstract. Class { protected void operation 1() {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-58.jpg)
![Template Method = Io. C 59 / 한빛 교육센터 Spring 교육 Template Method = Io. C 59 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-59.jpg)
![Callback Class Callback Method 60 / 한빛 교육센터 Spring 교육 Callback Class Callback Method 60 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-60.jpg)
![public interface Row. Callback. Handler { void process. Row(Result. Set rs) throws SQLException; } public interface Row. Callback. Handler { void process. Row(Result. Set rs) throws SQLException; }](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-61.jpg)
![public void query(String sql, Row. Callback. Handler callback. Handler) throws Jdbc. Sql. Exception { public void query(String sql, Row. Callback. Handler callback. Handler) throws Jdbc. Sql. Exception {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-62.jpg)
![class String. Handler implements Jdbc. Template. Row. Callback. Handler { private List 1 = class String. Handler implements Jdbc. Template. Row. Callback. Handler { private List 1 =](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-63.jpg)
![Spring Transaction Spring Transaction](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-64.jpg)
![Persistence Layer Where? Business Layer 65 / 한빛 교육센터 Spring 교육 Persistence Layer Where? Business Layer 65 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-65.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-66.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-67.jpg)
![TXa TXa TXb 68 / 한빛 교육센터 Spring 교육 TXb TXa TXa TXb 68 / 한빛 교육센터 Spring 교육 TXb](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-68.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-69.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-70.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-71.jpg)
![TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-72.jpg)
![Dirty Read TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb Dirty Read TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-73.jpg)
![Non. Repeatable Read(Fuzzy Read) – Update, Delete TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID Non. Repeatable Read(Fuzzy Read) – Update, Delete TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-74.jpg)
![Non. Repeatable Read(Fuzzy Read) – Update, Delete Commit TXb TXa SELECT CATEGORYNAME FROM ORDER Non. Repeatable Read(Fuzzy Read) – Update, Delete Commit TXb TXa SELECT CATEGORYNAME FROM ORDER](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-75.jpg)
![Phantom Read - Insert TXa SELECT COUNT(*) FROM ORDER Result 10 TXb INSERT INTO Phantom Read - Insert TXa SELECT COUNT(*) FROM ORDER Result 10 TXb INSERT INTO](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-76.jpg)
![Phantom Read - Insert Commit TXb TXa SELECT COUNT(*) FROM ORDER Result 11 77 Phantom Read - Insert Commit TXb TXa SELECT COUNT(*) FROM ORDER Result 11 77](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-77.jpg)
![Isolation Level Dirty Read Non. Repetable Read Phantom Read uncommitted (ISOLATION_READ_U NCOMMITTED) Possible Read Isolation Level Dirty Read Non. Repetable Read Phantom Read uncommitted (ISOLATION_READ_U NCOMMITTED) Possible Read](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-78.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-79.jpg)
![PROPAGATION_REQUIRED TXa TXa PROPAGATION_REQUIRED 80 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_REQUIRED 80 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-80.jpg)
![PROPAGATION_REQUIRED TXa TXb PROPAGATION_REQUIRES_NEW 81 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXb PROPAGATION_REQUIRES_NEW 81 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-81.jpg)
![PROPAGATION_REQUIRED TXa TXa PROPAGATION_SUPPORTS 82 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_SUPPORTS 82 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-82.jpg)
![PROPAGATION_SUPPORTS 83 / 한빛 교육센터 Spring 교육 PROPAGATION_SUPPORTS 83 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-83.jpg)
![PROPAGATION_REQUIRED TXa PROPAGATION_NOT_SUPPORTED 84 / 한빛 교육센터 Spring 교육 TXa PROPAGATION_REQUIRED TXa PROPAGATION_NOT_SUPPORTED 84 / 한빛 교육센터 Spring 교육 TXa](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-84.jpg)
![PROPAGATION_REQUIRED TXa TXa PROPAGATION_MADATORY 85 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_MADATORY 85 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-85.jpg)
![Throw Exception PROPAGATION_MADATORY 86 / 한빛 교육센터 Spring 교육 Throw Exception PROPAGATION_MADATORY 86 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-86.jpg)
![PROPAGATION_REQUIRED TXa Throw Exception PROPAGATION_NEVER 87 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa Throw Exception PROPAGATION_NEVER 87 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-87.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-88.jpg)
![PROPAGATION_REQUIRED, read. Only, timeout_0180, -Application. Exception 89 / 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED, read. Only, timeout_0180, -Application. Exception 89 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-89.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-90.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-91.jpg)
![컨테이너 기반 테스트 Cycle Test Development Server 재시작 Build Deploy 92 / 한빛 교육센터 컨테이너 기반 테스트 Cycle Test Development Server 재시작 Build Deploy 92 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-92.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-93.jpg)
![Junit 기반 테스트 Cycle Test 94 / 한빛 교육센터 Spring 교육 Development Junit 기반 테스트 Cycle Test 94 / 한빛 교육센터 Spring 교육 Development](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-94.jpg)
![org. springframework. test 95 / 한빛 교육센터 Spring 교육 org. springframework. test 95 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-95.jpg)
![기존의 테스트 방식 public class Standard. Out. Message. Renderer. Test { private Message. Renderer 기존의 테스트 방식 public class Standard. Out. Message. Renderer. Test { private Message. Renderer](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-96.jpg)
![Abstract. Dependency. Injection. Spring. Context. Tests public class Standard. Out. Message. Renderer. With. DITest Abstract. Dependency. Injection. Spring. Context. Tests public class Standard. Out. Message. Renderer. With. DITest](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-97.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-98.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-99.jpg)
![Abstract. Transactional. Spring. Context. Tests 테스트시 변경된 데이터를 자동 Rollback 100 / 한빛 교육센터 Abstract. Transactional. Spring. Context. Tests 테스트시 변경된 데이터를 자동 Rollback 100 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-100.jpg)
![Tx begin. Tx Business Logic Success 아니오 Rollback 101 / 한빛 교육센터 Spring 교육 Tx begin. Tx Business Logic Success 아니오 Rollback 101 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-101.jpg)
![Tx begin. Tx Unit Test Default 자동 Rollback 102 / 한빛 교육센터 Spring 교육 Tx begin. Tx Unit Test Default 자동 Rollback 102 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-102.jpg)
![Abstract. Transactional. Data. Source. Spring. Context. Tests 테스트를 위한 Query 구현이 가능 103 / Abstract. Transactional. Data. Source. Spring. Context. Tests 테스트를 위한 Query 구현이 가능 103 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-103.jpg)
![Spring Mock Object ? 104 / 한빛 교육센터 Spring 교육 Spring Mock Object ? 104 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-104.jpg)
![Mock. Http. Servlet. Request Mock. Http. Servlet. Response 105 / 한빛 교육센터 Spring 교육 Mock. Http. Servlet. Request Mock. Http. Servlet. Response 105 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-105.jpg)
![Thank you. Thank you.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-106.jpg)
- Slides: 106
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-1.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-2.jpg)
둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 개발 (실습) Spring DI Spring AOP 첫째 날 Spring JDBC & Transaction Spring Test
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-3.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-4.jpg)
![Spring은 Lightweight Application Framework 5 한빛 교육센터 Spring 교육 Spring은 Lightweight Application Framework 5 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-5.jpg)
Spring은 Lightweight Application Framework 5 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-6.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-7.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-8.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-9.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-10.jpg)
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-11.jpg)
둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 개발 (실습) Spring DI Spring AOP 첫째 날 Spring JDBC & Transaction Spring Test 11 / 한빛 교육센터 Spring 교육
![Spring DI Spring DI](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-12.jpg)
Spring DI
![Inversion of Control Dependency Injection 13 한빛 교육센터 Spring 교육 Inversion of Control? Dependency Injection? 13 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-13.jpg)
Inversion of Control? Dependency Injection? 13 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-14.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-15.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-16.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-17.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-18.jpg)
![Factory Pattern 19 한빛 교육센터 Spring 교육 Factory Pattern 19 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-19.jpg)
Factory Pattern 19 / 한빛 교육센터 Spring 교육
![Factory Pattern 20 한빛 교육센터 Spring 교육 Factory Pattern 20 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-20.jpg)
Factory Pattern 20 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-21.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-22.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-23.jpg)
![클래스 의존관계에 대한 Metadata XML 또는 Property Spring Framework Application Context 24 한빛 클래스 의존관계에 대한 Metadata (XML 또는 Property) Spring Framework (Application. Context) 24 / 한빛](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-24.jpg)
클래스 의존관계에 대한 Metadata (XML 또는 Property) Spring Framework (Application. Context) 24 / 한빛 교육센터 Spring 교육
![Inversion of Control Io C 25 한빛 교육센터 Spring 교육 Inversion of Control (Io. C) 25 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-25.jpg)
Inversion of Control (Io. C) 25 / 한빛 교육센터 Spring 교육
![EJB Spring Io C Inversion of Control DI Dependency • EJB • Spring Io. C : Inversion of Control DI : Dependency](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-26.jpg)
• EJB • Spring Io. C : Inversion of Control DI : Dependency Injection DP : Dependency Pull DP Io. C Setter Inj DI Constructor Inj • Spring • Pico. Container Method Inj 26 / 한빛 교육센터 Spring 교육
![Servlet Container Service Init Create Servlet A Destory Servlet B Servlet Container 27 Servlet Container Service Init Create Servlet A Destory Servlet B Servlet Container 27 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-27.jpg)
Servlet Container Service Init Create Servlet A Destory Servlet B Servlet Container 27 / 한빛 교육센터 Spring 교육 Servlet D
![EJB Container Service Init Create EJB A EJB B Destory EJB Container 28 EJB Container Service Init Create EJB A EJB B Destory EJB Container 28 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-28.jpg)
EJB Container Service Init Create EJB A EJB B Destory EJB Container 28 / 한빛 교육센터 Spring 교육 EJB D
![Io CDI Container Service Init Create POJO A Destory POJO B POJO C Io Io. C(DI) Container Service Init Create POJO A Destory POJO B POJO C Io.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-29.jpg)
Io. C(DI) Container Service Init Create POJO A Destory POJO B POJO C Io. C(또는 DI) Container 29 / 한빛 교육센터 Spring 교육 POJO D
![Spring Bean Scope Spring Bean Scope](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-30.jpg)
Spring Bean Scope
![Singleton Non Singleton 31 한빛 교육센터 Spring 교육 Singleton? , Non Singleton? 31 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-31.jpg)
Singleton? , Non Singleton? 31 / 한빛 교육센터 Spring 교육
![Singleton Pattern을 활용한 Singleton 32 한빛 교육센터 Spring 교육 Singleton Pattern을 활용한 Singleton 32 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-32.jpg)
Singleton Pattern을 활용한 Singleton 32 / 한빛 교육센터 Spring 교육
![지금까지의 Singleton 구현 방법 public class Message Service private static Message Service instance 지금까지의 Singleton 구현 방법 public class Message. Service { private static Message. Service instance;](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-33.jpg)
지금까지의 Singleton 구현 방법 public class Message. Service { private static Message. Service instance; private Message. Service() {} public static Message. Service get. Instance() { if(instance == null ) { instance = new Message. Service(); } return instance; } } 33 / 한빛 교육센터 Spring 교육
![Spring 기반하의 Singleton 34 한빛 교육센터 Spring 교육 Spring 기반하의 Singleton 34 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-34.jpg)
Spring 기반하의 Singleton 34 / 한빛 교육센터 Spring 교육
![Spring 프레임워크의 Singleton 구현 방법 bean idannyoung World Message Provider classnet javajigi ioc Annyoung Spring 프레임워크의 Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Annyoung.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-35.jpg)
Spring 프레임워크의 Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Annyoung. World. Message. Provider" scope=“singleton” /> <bean id="hello. World. Message. Provider" class="net. javajigi. ioc. Helloworld. Message. Provider"/> 35 / 한빛 교육센터 Spring 교육
![bean idrenderer classnet javajigi ioc Default Message Renderer property namemessage Provider ref localhi World <bean id="renderer" class="net. javajigi. ioc. Default. Message. Renderer"> <property name="message. Provider"> <ref local=“hi. World.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-36.jpg)
<bean id="renderer" class="net. javajigi. ioc. Default. Message. Renderer"> <property name="message. Provider"> <ref local=“hi. World. Message. Provider" /> </property> </bean> <bean id="hi. World. Message. Provider" class="net. javajigi. ioc. Hiworld. Message. Provider" /> Application. Context 36 / 한빛 교육센터 Spring 교육 키(key) 값(value) “renderer " Default. Message. Renderer 인스턴스 " hi. World. Message. Provider” Hi. World. Message. Provider 인스턴스
![웹 애플리케이션 Servlet Contextsigle instance 키key 값value org springframework web context Web Application Context 웹 애플리케이션 Servlet. Context(sigle instance) 키(key) 값(value) “org. springframework. web. context. Web. Application. Context.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-37.jpg)
웹 애플리케이션 Servlet. Context(sigle instance) 키(key) 값(value) “org. springframework. web. context. Web. Application. Context. ROOT" Web. Application. Context 인스턴스 JVM 37 / 한빛 교육센터 Spring 교육
![Spring 프레임워크의 Non Singleton 구현 방법 bean idannyoung World Message Provider classnet javajigi ioc Spring 프레임워크의 Non Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-38.jpg)
Spring 프레임워크의 Non Singleton 구현 방법 <bean id="annyoung. World. Message. Provider" class="net. javajigi. ioc. Annyoung. World. Message. Provider" scope=“prototype” /> <bean id="hello. World. Message. Provider" class="net. javajigi. ioc. Helloworld. Message. Provider“ scope=“prototype” /> 38 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-39.jpg)
![Singleton Instance name null new Person Thread A public class Person private Singleton Instance name = null new Person(); Thread A public class Person { private](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-40.jpg)
Singleton Instance name = null new Person(); Thread A public class Person { private String name; public void set. Name(String name) { this. name = name; } new Person(); public String get. Name() { return name; } Thread B } 40 / 한빛 교육센터 Spring 교육
![Singleton Instance name 예은 person set Name예은 public class Person private String Singleton Instance name = “예은” person. set. Name(“예은”); public class Person { private String](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-41.jpg)
Singleton Instance name = “예은” person. set. Name(“예은”); public class Person { private String name; public void set. Name(String name) { this. name = name; } Thread A public String get. Name() { return name; } } 41 / 한빛 교육센터 Spring 교육
![Singleton Instance name 주한 person set Name주한 public class Person private String Singleton Instance name = “주한” person. set. Name(“주한”); public class Person { private String](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-42.jpg)
Singleton Instance name = “주한” person. set. Name(“주한”); public class Person { private String name; public void set. Name(String name) { this. name = name; } Thread B public String get. Name() { return name; } } 42 / 한빛 교육센터 Spring 교육
![Singleton Instance name 주한 person get Name 주한 public class Person Singleton Instance name = “주한” person. get. Name(); => 주한 public class Person {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-43.jpg)
Singleton Instance name = “주한” person. get. Name(); => 주한 public class Person { private String name; public void set. Name(String name) { this. name = name; } Thread A public String get. Name() { return name; } } 43 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-44.jpg)
![Spring Bean Instance 생성 Spring Bean Instance 생성](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-45.jpg)
Spring Bean Instance 생성
![new bean idmessage Provider classnet javajigi di New Message Provider 46 한빛 교육센터 new <bean id="message. Provider" class="net. javajigi. di. New. Message. Provider"/> 46 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-46.jpg)
new <bean id="message. Provider" class="net. javajigi. di. New. Message. Provider"/> 46 / 한빛 교육센터 Spring 교육
![Factory method bean idmessage Provider classnet javajigi di Singleton Message Provider factorymethodget Instance Factory method <bean id="message. Provider" class="net. javajigi. di. Singleton. Message. Provider" factory-method="get. Instance" />](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-47.jpg)
Factory method <bean id="message. Provider" class="net. javajigi. di. Singleton. Message. Provider" factory-method="get. Instance" /> 47 / 한빛 교육센터 Spring 교육
![Factory Bean Interface bean idmessage Provider classnet javajigi di Message Provider Factory Bean property Factory. Bean Interface <bean id="message. Provider" class="net. javajigi. di. Message. Provider. Factory. Bean"> <property](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-48.jpg)
Factory. Bean Interface <bean id="message. Provider" class="net. javajigi. di. Message. Provider. Factory. Bean"> <property name="type"> <util: constant static-field="net. javajigi. di. Message. Provider. Factory. Bean. ANNYOUNG_WORLD_PROVIDER"/> </property> </bean> 48 / 한빛 교육센터 Spring 교육
![bean iduser Service classnet javajigi user service User Service Impl property nameuser DAO ref <bean id="user. Service" class="net. javajigi. user. service. User. Service. Impl"> <property name="user. DAO"> <ref](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-49.jpg)
<bean id="user. Service" class="net. javajigi. user. service. User. Service. Impl"> <property name="user. DAO"> <ref local="user. DAO" /> </property> </bean> Application. Context context = new Class. Path. Xml. Application. Context(paths); User. Service user. Service = context. get. Bean(“user. Service”); 49 / 한빛 교육센터 Spring 교육
![bean iduser Service classorg springframework aop framework Proxy Factory Bean property nametarget ref localuser <bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-50.jpg)
<bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user. Service. Target" /> </property> <property name="interceptor. Names"> <list> <value>logging. Advice</value> <value>email. Notification. Throws. Advice</value> </list> </property> </bean> Application. Context context = new Class. Path. Xml. Application. Context(paths); Proxy. Factory. Bean factory. Bean = context. get. Bean(“user. Service”); 50 / 한빛 교육센터 Spring 교육
![bean iduser Service classorg springframework aop framework Proxy Factory Bean property nametarget ref localuser <bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-51.jpg)
<bean id="user. Service" class="org. springframework. aop. framework. Proxy. Factory. Bean"> <property name="target"> <ref local="user. Service. Target" /> </property> <property name="interceptor. Names"> <list> <value>logging. Advice</value> <value>email. Notification. Throws. Advice</value> </list> </property> </bean> Application. Context context = new Class. Path. Xml. Application. Context(paths); User. Service user. Service = context. get. Bean(“user. Service”); 51 / 한빛 교육센터 Spring 교육
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-52.jpg)
둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 개발 (실습) Spring DI Spring AOP 첫째 날 Spring JDBC & Transaction Spring Test 52 / 한빛 교육센터 Spring 교육
![Spring JDBC Spring JDBC](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-53.jpg)
Spring JDBC
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-54.jpg)
![Template Method Pattern 55 한빛 교육센터 Spring 교육 Template Method Pattern 55 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-55.jpg)
Template Method Pattern 55 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-56.jpg)
![public abstract class Abstract Class public void template Method 비지니스 public abstract class Abstract. Class { public void template. Method() { //. . 비지니스](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-57.jpg)
public abstract class Abstract. Class { public void template. Method() { //. . 비지니스 로직 구현 operation 1(); //. . 비지니스 로직 구현 operation 2(); } protected abstract void operation 1(); protected abstract void operation 2(); } 57 / 한빛 교육센터 Spring 교육
![public class Concrete Class A extends Abstract Class protected void operation 1 public class Concrete. Class. A extends Abstract. Class { protected void operation 1() {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-58.jpg)
public class Concrete. Class. A extends Abstract. Class { protected void operation 1() { // TODO Auto-generated method stub } protected void operation 2() { // TODO Auto-generated method stub } } 58 / 한빛 교육센터 Spring 교육
![Template Method Io C 59 한빛 교육센터 Spring 교육 Template Method = Io. C 59 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-59.jpg)
Template Method = Io. C 59 / 한빛 교육센터 Spring 교육
![Callback Class Callback Method 60 한빛 교육센터 Spring 교육 Callback Class Callback Method 60 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-60.jpg)
Callback Class Callback Method 60 / 한빛 교육센터 Spring 교육
![public interface Row Callback Handler void process RowResult Set rs throws SQLException public interface Row. Callback. Handler { void process. Row(Result. Set rs) throws SQLException; }](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-61.jpg)
public interface Row. Callback. Handler { void process. Row(Result. Set rs) throws SQLException; } 61 / 한빛 교육센터 Spring 교육
![public void queryString sql Row Callback Handler callback Handler throws Jdbc Sql Exception public void query(String sql, Row. Callback. Handler callback. Handler) throws Jdbc. Sql. Exception {](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-62.jpg)
public void query(String sql, Row. Callback. Handler callback. Handler) throws Jdbc. Sql. Exception { Connection con = null; Prepared. Statement ps = null; Result. Set rs = null; try { con = <code to get connection> ps = con. prepare. Statement (sql); rs = ps. execute. Query(); while (rs. next()) { callback. Handler. process. Row(rs); } rs. close(); ps. close(); } catch (SQLException ex) { throw new Jdbc. Sql. Exception("Couldn't run query [" + sql + "]", ex); } finally { Data. Source. Utils. close. Connection. If. Necessary(this. data. Source, con); } } 62 / 한빛 교육센터 Spring 교육
![class String Handler implements Jdbc Template Row Callback Handler private List 1 class String. Handler implements Jdbc. Template. Row. Callback. Handler { private List 1 =](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-63.jpg)
class String. Handler implements Jdbc. Template. Row. Callback. Handler { private List 1 = new Linked. List(); public void process. Row(Result. Set rs)throws SQLException { 1. add(rs. get. String(1)); } public String[] get. Strings() { return (String[]) 1. to. Array(new String[1. size()]); } } String. Handler sh = new String. Handler(); jdbc. Template. query("SELECT FORENAME FROM CUSTMR", sh); String[] forenames = sh. get. Strings(); 63 / 한빛 교육센터 Spring 교육
![Spring Transaction Spring Transaction](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-64.jpg)
Spring Transaction
![Persistence Layer Where Business Layer 65 한빛 교육센터 Spring 교육 Persistence Layer Where? Business Layer 65 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-65.jpg)
Persistence Layer Where? Business Layer 65 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-66.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-67.jpg)
![TXa TXa TXb 68 한빛 교육센터 Spring 교육 TXb TXa TXa TXb 68 / 한빛 교육센터 Spring 교육 TXb](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-68.jpg)
TXa TXa TXb 68 / 한빛 교육센터 Spring 교육 TXb
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-69.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-70.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-71.jpg)
![TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID 1 Result BOOK TXb UPDATE ORDER TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-72.jpg)
TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER SET CATEGORYNAME=“MUSIC” WHERE ORDERID = 1 TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result ? 72 / 한빛 교육센터 Spring 교육
![Dirty Read TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID 1 Result BOOK TXb Dirty Read TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-73.jpg)
Dirty Read TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER SET CATEGORYNAME=“MUSIC” WHERE ORDERID = 1 TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “MUSIC” 73 / 한빛 교육센터 Spring 교육
![Non Repeatable ReadFuzzy Read Update Delete TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID Non. Repeatable Read(Fuzzy Read) – Update, Delete TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-74.jpg)
Non. Repeatable Read(Fuzzy Read) – Update, Delete TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” TXb UPDATE ORDER SET CATEGORYNAME=“MUSIC” WHERE ORDERID = 1 TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “BOOK” 74 / 한빛 교육센터 Spring 교육
![Non Repeatable ReadFuzzy Read Update Delete Commit TXb TXa SELECT CATEGORYNAME FROM ORDER Non. Repeatable Read(Fuzzy Read) – Update, Delete Commit TXb TXa SELECT CATEGORYNAME FROM ORDER](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-75.jpg)
Non. Repeatable Read(Fuzzy Read) – Update, Delete Commit TXb TXa SELECT CATEGORYNAME FROM ORDER WHERE ORDERID = 1 Result “MUSIC” 75 / 한빛 교육센터 Spring 교육
![Phantom Read Insert TXa SELECT COUNT FROM ORDER Result 10 TXb INSERT INTO Phantom Read - Insert TXa SELECT COUNT(*) FROM ORDER Result 10 TXb INSERT INTO](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-76.jpg)
Phantom Read - Insert TXa SELECT COUNT(*) FROM ORDER Result 10 TXb INSERT INTO ORDER (ORDERID, CATEGORYNAME) VALUES ( 11, “GAME” TXa SELECT COUNT(*) FROM ORDER Result 10 76 / 한빛 교육센터 Spring 교육
![Phantom Read Insert Commit TXb TXa SELECT COUNT FROM ORDER Result 11 77 Phantom Read - Insert Commit TXb TXa SELECT COUNT(*) FROM ORDER Result 11 77](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-77.jpg)
Phantom Read - Insert Commit TXb TXa SELECT COUNT(*) FROM ORDER Result 11 77 / 한빛 교육센터 Spring 교육
![Isolation Level Dirty Read Non Repetable Read Phantom Read uncommitted ISOLATIONREADU NCOMMITTED Possible Read Isolation Level Dirty Read Non. Repetable Read Phantom Read uncommitted (ISOLATION_READ_U NCOMMITTED) Possible Read](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-78.jpg)
Isolation Level Dirty Read Non. Repetable Read Phantom Read uncommitted (ISOLATION_READ_U NCOMMITTED) Possible Read committed (ISOLATION_READ_C OMMITTED) Not Possible Repetable read (ISOLATION_REPEAT ABLE_READ) Not Possible Serializable (ISOLATION_SERIALI ZABLE) Not Possible 78 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-79.jpg)
![PROPAGATIONREQUIRED TXa TXa PROPAGATIONREQUIRED 80 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_REQUIRED 80 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-80.jpg)
PROPAGATION_REQUIRED TXa TXa PROPAGATION_REQUIRED 80 / 한빛 교육센터 Spring 교육
![PROPAGATIONREQUIRED TXa TXb PROPAGATIONREQUIRESNEW 81 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXb PROPAGATION_REQUIRES_NEW 81 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-81.jpg)
PROPAGATION_REQUIRED TXa TXb PROPAGATION_REQUIRES_NEW 81 / 한빛 교육센터 Spring 교육
![PROPAGATIONREQUIRED TXa TXa PROPAGATIONSUPPORTS 82 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_SUPPORTS 82 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-82.jpg)
PROPAGATION_REQUIRED TXa TXa PROPAGATION_SUPPORTS 82 / 한빛 교육센터 Spring 교육
![PROPAGATIONSUPPORTS 83 한빛 교육센터 Spring 교육 PROPAGATION_SUPPORTS 83 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-83.jpg)
PROPAGATION_SUPPORTS 83 / 한빛 교육센터 Spring 교육
![PROPAGATIONREQUIRED TXa PROPAGATIONNOTSUPPORTED 84 한빛 교육센터 Spring 교육 TXa PROPAGATION_REQUIRED TXa PROPAGATION_NOT_SUPPORTED 84 / 한빛 교육센터 Spring 교육 TXa](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-84.jpg)
PROPAGATION_REQUIRED TXa PROPAGATION_NOT_SUPPORTED 84 / 한빛 교육센터 Spring 교육 TXa
![PROPAGATIONREQUIRED TXa TXa PROPAGATIONMADATORY 85 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa TXa PROPAGATION_MADATORY 85 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-85.jpg)
PROPAGATION_REQUIRED TXa TXa PROPAGATION_MADATORY 85 / 한빛 교육센터 Spring 교육
![Throw Exception PROPAGATIONMADATORY 86 한빛 교육센터 Spring 교육 Throw Exception PROPAGATION_MADATORY 86 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-86.jpg)
Throw Exception PROPAGATION_MADATORY 86 / 한빛 교육센터 Spring 교육
![PROPAGATIONREQUIRED TXa Throw Exception PROPAGATIONNEVER 87 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED TXa Throw Exception PROPAGATION_NEVER 87 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-87.jpg)
PROPAGATION_REQUIRED TXa Throw Exception PROPAGATION_NEVER 87 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-88.jpg)
![PROPAGATIONREQUIRED read Only timeout0180 Application Exception 89 한빛 교육센터 Spring 교육 PROPAGATION_REQUIRED, read. Only, timeout_0180, -Application. Exception 89 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-89.jpg)
PROPAGATION_REQUIRED, read. Only, timeout_0180, -Application. Exception 89 / 한빛 교육센터 Spring 교육
![둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-90.jpg)
둘째 날 셋째 날 개발 환경 세팅 Spring 기본 Spring MVC 사용자 관리 시스템 개발 (실습) Spring DI Spring AOP 첫째 날 Spring JDBC & Transaction Spring Test 90 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-91.jpg)
![컨테이너 기반 테스트 Cycle Test Development Server 재시작 Build Deploy 92 한빛 교육센터 컨테이너 기반 테스트 Cycle Test Development Server 재시작 Build Deploy 92 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-92.jpg)
컨테이너 기반 테스트 Cycle Test Development Server 재시작 Build Deploy 92 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-93.jpg)
![Junit 기반 테스트 Cycle Test 94 한빛 교육센터 Spring 교육 Development Junit 기반 테스트 Cycle Test 94 / 한빛 교육센터 Spring 교육 Development](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-94.jpg)
Junit 기반 테스트 Cycle Test 94 / 한빛 교육센터 Spring 교육 Development
![org springframework test 95 한빛 교육센터 Spring 교육 org. springframework. test 95 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-95.jpg)
org. springframework. test 95 / 한빛 교육센터 Spring 교육
![기존의 테스트 방식 public class Standard Out Message Renderer Test private Message Renderer 기존의 테스트 방식 public class Standard. Out. Message. Renderer. Test { private Message. Renderer](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-96.jpg)
기존의 테스트 방식 public class Standard. Out. Message. Renderer. Test { private Message. Renderer renderer; @Before public void set. Up() throws Exception { Application. Context application. Context = new Class. Path. Xml. Application. Context( "net/javajigi/helloworld/Hello. World. xml"); renderer = (Message. Renderer) application. Context. get. Bean("renderer"); } @Test public void test. Render() { renderer. render(); } } 96 / 한빛 교육센터 Spring 교육
![Abstract Dependency Injection Spring Context Tests public class Standard Out Message Renderer With DITest Abstract. Dependency. Injection. Spring. Context. Tests public class Standard. Out. Message. Renderer. With. DITest](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-97.jpg)
Abstract. Dependency. Injection. Spring. Context. Tests public class Standard. Out. Message. Renderer. With. DITest extends Abstract. Dependency. Injection. Spring. Context. Tests { private Message. Renderer renderer; public void set. Renderer(Message. Renderer renderer) { this. renderer = renderer; } @Override protected String[] get. Config. Locations() { return new String[] { "classpath: net/javajigi/helloworld/Hello. World. xml" }; } public void test. Render() { renderer. render(); } } 97 / 한빛 교육센터 Spring 교육
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-98.jpg)
![](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-99.jpg)
![Abstract Transactional Spring Context Tests 테스트시 변경된 데이터를 자동 Rollback 100 한빛 교육센터 Abstract. Transactional. Spring. Context. Tests 테스트시 변경된 데이터를 자동 Rollback 100 / 한빛 교육센터](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-100.jpg)
Abstract. Transactional. Spring. Context. Tests 테스트시 변경된 데이터를 자동 Rollback 100 / 한빛 교육센터 Spring 교육
![Tx begin Tx Business Logic Success 아니오 Rollback 101 한빛 교육센터 Spring 교육 Tx begin. Tx Business Logic Success 아니오 Rollback 101 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-101.jpg)
Tx begin. Tx Business Logic Success 아니오 Rollback 101 / 한빛 교육센터 Spring 교육 예 Commit
![Tx begin Tx Unit Test Default 자동 Rollback 102 한빛 교육센터 Spring 교육 Tx begin. Tx Unit Test Default 자동 Rollback 102 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-102.jpg)
Tx begin. Tx Unit Test Default 자동 Rollback 102 / 한빛 교육센터 Spring 교육
![Abstract Transactional Data Source Spring Context Tests 테스트를 위한 Query 구현이 가능 103 Abstract. Transactional. Data. Source. Spring. Context. Tests 테스트를 위한 Query 구현이 가능 103 /](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-103.jpg)
Abstract. Transactional. Data. Source. Spring. Context. Tests 테스트를 위한 Query 구현이 가능 103 / 한빛 교육센터 Spring 교육
![Spring Mock Object 104 한빛 교육센터 Spring 교육 Spring Mock Object ? 104 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-104.jpg)
Spring Mock Object ? 104 / 한빛 교육센터 Spring 교육
![Mock Http Servlet Request Mock Http Servlet Response 105 한빛 교육센터 Spring 교육 Mock. Http. Servlet. Request Mock. Http. Servlet. Response 105 / 한빛 교육센터 Spring 교육](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-105.jpg)
Mock. Http. Servlet. Request Mock. Http. Servlet. Response 105 / 한빛 교육센터 Spring 교육
![Thank you Thank you.](https://slidetodoc.com/presentation_image_h2/a4ee11603f19f25798089c0580204120/image-106.jpg)
Thank you.
Spring boot aspect example
Spring oop
Eclipse plugin
Java spring board
Request flow in spring mvc
Eclipse.ini jdk 설정
Spring 아이디 찾기 소스
Aop network
Isaop
Jboss aop
What is aop
Handlerinterceptoradapter
Aop
Amplificateur
Mvc routing
Swing mvc example
Blackboard mvc
Struts 2 mvc
Mvc life cycle in c#
Mvc mis
Difference between view and partial view in mvc
Tvc avc and mvc
Modelo vista controlador
Nj road test requirements
Mvt vs mvc
Jee
Mvc m
Asp.net mvc 5 identity authentication and authorization
Mvc vs webforms
Mvc muster
Misterios gozosos meditados mvc
Action selectors in mvc
Getting a driver's license illegally may result in
Wzorzec projektowy mvc
Delphi mvc
What mvc stands for
Mvc spencer
Model layer in mvc
Mvc architecture in jsp
Boundary control entity
Asp net core roadmap
Mvc java swing
Mvc paradigm
Asp net tutorialspoint
Mvc design pattern in java
Mvc intro
Trygve reenskaug mvc
Model view controller
Swing mvc example
Trygve reenskaug mvc
Kim ki duk spring summer fall winter
Fall months
Big spring school district
Potential energy spring
Silver spring hotel cork
Forms of energy?
Prague spring
Spring loaded inverted pendulum
Stretching spring
Helical spring formula
Yuki spring bed
Diameter if you know circumference
Cos217 spring 2021
In spring it's warm
Tidal bulge
Spring
Dpg spring meeting
Kinetic energy of a spring
Spring nature
Cos217 spring 2021
Spring equations
Ftp server spring 2017
Math enrichment spring 2020
Mass spring system in real life
Spring udp
Grepor
Rj spring rubber and metal parts
A wind up toy is fully wound and at rest
Spring valley ela
Tension in elastic string
Spring framework overview
How to paint spring flowers in watercolor
Malay mancatcher trap diagram
Vulnerabilitäts-stress-modell nach zubin und spring
World history spring final exam review answers
Spring security denyall
Kunming golf package
Elmvale spring water
Spring earth tilt
Tunisia arab spring timeline
Assonance in dulce et decorum est
Silent spring apush
What images spring to mind
Fall winter summer spring
Start.spring,io
Spring batch validation
Spring bean dependency graph
Unlocking of knee joint
Subtalární kloub
2200n
What images spring to mind
Net productivity
Jpa pageable
Energy stored in a spring
аоп java
Shift lateral fisioterapia
Spring framework architecture