1、Sviluppo e collaudo di una webapp mediante IoC e AOP,Alessandro Franchi - 0000219521 Reti di Calcolatori L-S A.A. 2007/2008,Introduzione,JavaBeans Troppo semplici per applicazioni di livello enterprise J2EE Disaccoppiamento tra Presentation Layer (JSP e servlet) e Business Logic (EnterpriseJavaBeans
2、) Servizi middleware EJB troppo complessi Implementazione complessa Molto invasivo Difficili da testare,Nuovi pattern di programmazione,2,Librerie vs. Framework IoC Dependency Injection Loose coupling Testabilit Manutenibilit,Inversion of Control (IoC),3,Aspect Oriented Programming (AOP),Servizi ort
3、ogonali alla business logic:,S I C U R E Z Z A,BookService,Shopping CartService,UserService,TRANSAZIONI,4,L O G G I N G,Cross-cutting concerns come aspect:,Advice,Pointcut,Spring Framework,Architettura:Spring Web Flow Flusso stati, eventi e transizioni,5,Applicazione web per la gestione di uno shop
4、online Three-tiered architecture:,Architettura della Webapp,6,Security Layer,Database,Presentation Layer,Application Layer,Persistence Layer,Web Browser,Presentation Layer (Client-Side Logic),7,Dispatcher Servlet (Front Controller),ModelAndView,Handler Mapping,View Resolver,Request: login.htm,Servic
5、e Layer,buyFlow (main flow),Flow di Acquisto con carrello della spesa virtuale,8,search (subflow),addToCart (subflow),removeFromCart (subflow),update database,checkout,warn not in stock,Application Layer (Business Logic),Gestione domain objectsAmbiente multiutente Un “carrello della spesa” virtuale
6、per utente,9,Persistence Layer (Database Logic),Object-Relational Mapping Hibernate Data Access Object (DAO) Gestione transazioni come “aspect” Spring AOP: proxy-based method joinpoint,10,proxy,BookService,txAdvice,BookDao,saveBooks() updateBooks() getBooks(),Inizia transazione,Termina transazione (
7、commit o rollback),Risultati,Esegue business logic,Testing,Supporto di Spring alla fase di testing Unit Testing di controller Spring MVC Verifica che il model contenga certi oggetti Verifica che la view ritornata sia quella giusta Testing di flow definiti con Spring Web Flow Verifica della correttez
8、za degli stati e delle transizioni Integration Testing dellapplicazione Verifica del funzionamento dellapplicazione o di parti di essa caricando lApplicationContext Transactional Testing dei componenti per laccesso al database Verifica delle operazioni di accesso e modifica del database Ogni test wr
9、appato in una transazione EasyMock Per implementazioni mock dei service objects nel caso di Unit Test,11,Deploy distribuito,12,Controller MVC,ProxyFactoryBean (crea proxy specifici per RMI, HTTP Invoker),invocazione metodo,network,BookService,BookDao,Conclusioni,Spring Framework: Componenti loosely
10、coupled, riutilizzabili e facilmente testabili Servizi ortogonali (transazioni) applicati come aspect Architettura scalabile Futuri sviluppi dellapplicazione Data source estratta da directory JNDI che ottiene connessioni da un pool di connessioni Load balancing Gestore a livello applicativo Load bal
11、ancer a livello HTTP Java Message System,13,Bibliografia,C. Walls and R. Breidenbach, Spring in Action, Manning, 2005. Java Beans (http:/ Sun Microsystems (http:/ Java (http:/ Java 2 Platform, Enterprise Edition (J2EE) (http:/ Enterprise JavaBeans Technology (http:/ M. Fowler, “Inversion of Control,
12、” 2005 (http:/ SpringSource.org - Spring Framework (http:/www.springsource.org/) M. Fowler, “Inversion of Control Containers and the Dependency Injection pattern,” 2004 (http:/ SpringSource.org - Spring Web Flow (http:/www.springsource.org/webflow) Acegi Security - Acegi Security System for Spring (http:/www.acegisecurity.org/) Hibernate (http:/www.hibernate.org/) Remote Method Invocation Home (http:/ Hessian Binary Web Service Protocol (http:/ Burlap XML Web Service Protocol (http:/
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1