Advanced Web Systems 5- Designing Complex Applications. -The IOC Pattern -Light Weight Container. A. Venturini
|
|
- Dwain Robbins
- 6 years ago
- Views:
Transcription
1 Advanced Web Systems 5- Designing Complex Applications -The IOC Pattern -Light Weight Container A. Venturini
2 Introduction Design and maintainability issues The Inversion of Control Pattern How IoC solves those design issues The Spring Framework and IoC Most of the slides from: Inversion of control - Spring, Pascal Bleser
3 The Inversion of Control Pattern Design and maintainability issues
4 Design maintainable systems Design maintainable systems = cope well with change and iterations key issue: manage dependencies Other important aspects/techniques: Design by Contract clearly define the Contract of a class/interface (Javadoc) Contract: what it does, how it behaves NOT how it is implemented! Unit Testing write tests that verify the class/interface's Contract Separation of Concerns write a class/interface for every single Concern
5 Design maintainable systems Dependency = when you tie a component to another one, by one of: inheritance (specialization, generalization) composition instanciation instanciation by factory method parameter use of static methods or attributes
6 Dependency through inheritance public class Dog extends Animal { //... } Animal Dog Dog depends on Animal Inheritance results in strong coupling and is extremely overused in OO. Only use inheritance when it really makes sense from the natural classes' definition, not to avoid duplicating code. Always try to favor Composition over Inheritance.
7 Dependency through composition public class UserManager { private UserDAO userdao; } UserManage r UserDAO UserManager depends on UserDAO Composition creates loose coupling, because when the dependency's (UserDAO) interface or behaviour changes, you only need to adapt the dependant (UserManager). It doesn't have the side effects Inheritance has.
8 Dependency: instanciation Dependency through instanciation public class WebServerProbe { public boolean isrunning() { Socket socket = new Socket();... WebServerProb e Socket <<use>> WebServerProbe depends on Socket
9 Dependency: instanciation by Factory public class UserManager { public Collection getusers() { UserDAO userdao = UserDAOFactory.newInstance();... UserManager <<use>> UserDA O <<use>> UserDAO Factory <<create>> UserManager depends on UserDAOFactory (UserManager also depends on UserDAO)
10 Dependency: static method Dependency through use of a static method public class WebServerProbe { private Collection ports;... public void setports(integer[] ports) { this.ports = java.util.arrays.aslist(ports); WebServerProb e <<use>> Arrays WebServerProbe depends on java.util.arrays
11 What dependencies mean Having a dependency means: dependent component is subject to change when the component it depends on is modified Some forms of dependency are worse than others: inheritance: change of behaviour may be insidious, as new methods are added and used, and your component doesn't notice it has to overwrite them favor composition over inheritance accessing static classes, methods, attributes (e.g. Singletons): dependencies are hidden inside the dependant components' implementation (code), makes it difficult to track down which dependants to modify when you change the static component use Dependency Injection (IoC) instead
12 What dependencies mean Dependencies not bad per-se: of course, you always have dependencies the goal is to minimize the number of dependencies in your design only depend on interfaces What you should aim for: aim for loosely coupled components depend on Interfaces rather than classes, as much as possible The less likely your application is subject to change, the more stable and maintainable it becomes. A complex application is composed of many classes, dependencies are difficult to maintain
13 Loosely coupled Loose vs tight coupling Tight coupling: instanciating of concrete classes inside your logic InputStream is = new FileInputStream(...); using static methods InputStream is = StreamUtils.getConfigFileInputStream(); inheritance Loose coupling: using Factories and Service Locators InputStream is = new ConfigFactory().createInputStream(); use the Inversion of Control pattern
14 Weather Portlet Dependencies
15 Weather Portlet depends on WeatherService Class weatherportlet { public void init() { String proxyhost= String proxyport= ; WeatherService.init(proxyHost,proxyPort); } } WeatherPortlet initialize the WeatherService using a static method call to WeatherService object
16 WeatherService class WeatherService { WeatherService service; public static void init(string proxyhost, String proxyport) { service = new WeatherService(proxyHost, proxyport); } } WeatherService init method creates the only ONE instance of WeatherService object and set in the service class WeatherService { public static void instance() { return service; } } WeatherService implements a singleton pattern: Only one instance object used by the whole application Centralize the creation of the object
17 WeatherPortlet depends on WeatherService WeatherService is tight to the specific weather service provider: What if we need to get weather by another service provider? We need to create a new and different WeatherService class (i.e. YahooWeatherService) We would need to change WeatherPortlet to use YahooWeatherService If we had more objects depending on WeatherService, this should be done for all of them! This is not good, since we should minimize changes of dependent components
18 WeatherPortlet dependency WeatherPortlet extends GenericPortlet GenericPortlet is part of JSR 168 GenericPortlet will not change (or impacts of changes will be carefully studied) It is safe to extend in this case
19 The Inversion of Control Pattern The Inversion of Control Pattern
20 Inversion of Control First... without IoC
21 w/o IoC Implementation without IoC: must retrieve dependencies yourself, inside the logic e.g. JNDI, EJB stub, JDBC Connection, Properties file,... decouple by: coding against interfaces fetch objects using a Factory or a Service Locator call methods on those objects, potentially to retrieve other dependencies e.g. JNDI, JDBC Connection Pool,... creates chained dependencies
22 w/o IoC: Drawbacks Drawbacks of not using IoC: code bloated with dependency retrieval instantiation still creates coupling code bound to a particular environment (container) (EJB container, Servlet container, Rich client,...) difficult to unit test We're going to have a look at those, one by one.
23 w/o IoC: Drawbacks logic bloated with dependency retrieval e.g.: EJB stub, JDBC Connection, Properties file,... sometimes more code for that than for the actual logic solution: encapsulate it (Service Locator, Factory) issue: you'll have to write those Factories yourself issue: Singletons are evil dependencies are not clear, spread all over your code they make unit testing difficult they are difficult to refactor
24 w/o IoC: Drawbacks coding against interfaces decouples, but... instantiation still uses a concrete implementation (=> coupling) solution: use a Factory issue: tight coupling towards the Factory, makes it hard to maintain, difficult to unit test,...
25 w/o IoC: Factory Pattern WeatherPortlet +doview() +processaction() WeatherServiceFactory +createinstance(): WeatherService +getfactory(type: String) <<interface>> WeatherService +getweatherbycity() WeatherComServiceFactory +createinstance(): WeatherService YhaooWeatherServiceFactory +createinstance(): WeatherService WeatherComService YahooWeatherService This is how it becomes our weather portlet if we needed to manage more services WeatherServiceFactory mechanism should be coded On Factory pattern (and DAO, another pattern we will use):
26 w/o IoC: Creation Process WeatherPortlet WeatherServiceFactory WeatherComServiceFactory 1 : getfactory("weathercomservice") <<create>> 2 4 : instance := createinstance() 3 <<create>> 5 WeatherComService 6 7
27 w/o IoC: Drawbacks Code is bound to a particular environment dependency retrieval coded inside your business logic various environments / containers: standalone Java application Swing/SWT application running inside an EJB container running inside a Servlet container example: retrieving a JDBC Connection standalone: using java.sql.drivermanager standalone with a pool: using Apache Commons DBCP inside Tomcat: using InitialContext and DataSource inside Jetty: using Apache Commons DBCP inside EJB container: using InitialContext and DataSource
28 w/o IoC: Drawbacks Difficult to unit test because how to retrieve a dependency is coded inside the class you want to unit test e.g.: when using a Factory, how could you change its behaviour accordingly to your unit test? class MyLogic { public void dosomething() { // use the InitialContext (JNDI) Service Locator // to retrieve the BusinessLogic object InitialContext ctx = new InitialContext(); BusinessLogic partner = (BusinessLogic) ctx.lookup( my/business/logic/impl ); } } // now perform the actual logic: partner.doyourownbusiness(); Now... how to unit test MyLogic without using the EJB and requiring an EJB container?
29 The Inversion of Control Pattern The Inversion of Control Pattern
30 Two types of IOC common to J2EE Dependency Lookup EJB and Apache Avalon - The coarse-grain beans are left looking up dependencies it needs. In J2EE, JNDI is the glue that holds J2EE applications together IBM Dependency Injection Spring and Pico Factories create beans with all the dependencies set on the bean. In Spring that glue is externalized so business classes don t have to worry about how or what they need to glue together.
31 Inversion of Control (1/5) A way of wiring components together wiring = assembling, putting Collaborators together You define Interfaces and implementations Dependencies between interfaces/classes (making them Collaborators ) the Inversion of Control container assembles the Dependent and the Provider, injects the Provider into the Dependent gives you the possibility of selecting which Provider implementation to inject into each Dependent (by configuration, code or automatically (autowiring))
32 Inversion of Control (2/5) WeatherPortlet IoC Container <<interface>> WeatherService WeatherComService YahooWeatherService
33 Inversion of Control (3/5) Lightweight container architecture uses POJOs (Plain Old Java Objects) no need to deploy to a heavyweight container (such as an EJB or Servlet Container) improves testability, makes writing Unit Tests much easier Non-intrusive you don't depend on any specific APIs from the Container no interfaces to implement, no classes to extend from, except your own
34 Inversion of Control (4/5) instead, an IoC container will inject the dependencies into the objects (hence the other name for IoC: Dependency Injection ) Hollywood principle : don't call me, I'll call you without IoC, your logic component (e.g. EJB, POJO, Servlet,...) has the control over its dependencies and, hence, <<use>> Factory has to retrieve them <<use>> MyLogic <<create>> Partner with IoC, the logic components don't have control over their dependencies and don't retrieve them by themselves
35 Inversion of Control (5/5) Key Advantages: effectively decouples your logic components from their dependencies removes the dependency fetching bloat from your code (now it's the IoC container's job) greatly improves your design gives much greater flexibility and reuse of components unit testing becomes much easier don't depend on specific environments
36 Example: w/o IoC Without Inversion of Control: class WeatherPortlet { private WeatherService weatherservice = null; protected final BusinessServiceInterface getweatherservice() { if (weatherservice == null) { // get the factory??? WeatherFactory factory= WeatherServiceFactory.getFactory( weather.com )); weatherservice = factory.create(); } return weatherservice; } public void doview() { getweatherservice().getweatherbycity( bolzano ); } } The creation code should go in any class that uses weatherservice you'll have to reengineer if you change WeatherFactory And if you want to use yahoo weather provider? You should allow to configure your class
37 Example: with IoC With Inversion of Control: class WeatherPortlet { // WeatherService will be set by the IoC container: private WeatherService weatherservice ; // we'll use setter-based injection (explained later): public void setweatherservice(weatherservice weatherservice) { this. weatherservice = weatherservice; } } public void doview() { // perform call on businessservice weatherservice.getweatherbycity( bolzano ); } no dependency at all on how weatherservice is retrieved/provided no code clutter to retrieve the dependency: just an attribute and a setter only dependency is the interface weatherservice The framework is in charge to initialize the weatherservice instance
38 What is the Spring Framework? Spring is a Lightweight Application Framework Where Struts, WebWork and others can be considered Web frameworks, Spring addresses all tiers of an application Spring provides the plumbing so that you don t have to! Spring is based on the Inversion of Control approach
39 Spring Framework History Started 2002/2003 by Rod Johnson and Juergen Holler Started as a framework developed around Rod Johnson s book Expert One-on-One J2EE Design and Development Spring 1.0 Released March /2005 Spring emerged as a leading full-stack Java/J2EE application framework
40 Spring == J2EE Application Server? Spring is NOT a J2EE application server Spring can integrate nicely with J2EE application servers (or any Java environment) Spring can, in many cases, elegantly replace services traditionally provided by J2EE application servers
41 Spring Framework Mission Statement The authors of Spring aim that: Spring should be a pleasure to use Your application code should not depend on Spring APIs Spring should not compete with good existing solutions, but should foster integration. (For example, JDO and Hibernate are great O/R mapping solutions. We don't need to develop another one.)
42 The Spring Framework Mission Statement (2) From springframework.org The authors of Spring believe that: J2EE should be easier to use It's best to program to interfaces, rather than classes. Spring reduces the complexity cost of using interfaces to zero. JavaBeans offer a great way of configuring applications. OO design is more important than any implementation technology, such as J2EE. Checked exceptions are overused in Java. A framework shouldn't force you to catch exceptions you're unlikely to be able to recover from. Testability is essential, and a framework such as Spring should help make your code easier to test.
43 Spring (3) Spring brings a consistent structure to your entire application Spring provides a consistent way to glue your whole application together Spring provides elegant integration points with standard and defacto-standard interfaces: Hibernate, JDO, TopLink, EJB, RMI, JNDI, JMS, Web Services, Struts, etc. Just as Struts did on the web tier, we can realize huge productivity gains by not having to write the common integration points across your application
44 Spring features Below is a list of some of the features in Spring. IOC (Inversion of Control) Container to facilitate Dependency Injection MVC Framework implemented with interfaces and IOC(future presentation) AOP Framework for accessing J2EE service declaratively JDBC and DAO layer Abstraction (another presentation) Declarative Transaction Management support, Security Management JMS producer, consumer abstractions, and conversion
45 Spring is Non-Invasive What does that mean? You are not forced to import or extend any Spring APIs An invasive API takes over your code. Anti-patterns: EJB forces you to use JNDI Struts forces you to extend Action Invasive frameworks are inherently difficult to test. You have to stub the runtime that is supplied by the application server
46 what IS Spring (1/2)? At it s core, Spring provides: An Inversion of Control Container Also known as Dependency Injection (Fowler s term) An AOP Framework Spring provides a proxy-based AOP framework You can alternatively integrate with AspectJ or AspectWerkz A Service Abstraction Layer Consistent integration with various standard and 3 rd party APIs These together enable you to write powerful, scalable applications using POJOs.
47 what IS Spring (2/2)? Spring at it s core, is a framework for wiring up your entire application BeanFactories are the heart of Spring
48 Spring Overview from springframework.org Note: Spring distribution comes as one big jar file and alternatively as a series of smaller jars broken out along the above lines (so you can include only what you need)
49 Preview: Spring Framework Open Source project License: Apache Software License 2.0 Website: First public release: June 2003 Lightweight framework, written in Java Started by Rod Johnson while he wrote the book Expert One-on-One J2EE Design and Development (Wrox Press, ISBN: )
50 Why a lightweight framework? J2EE works well but... it's a heavyweight architecture that puts a lot of constraints it's often too much to implement simple applications it's very difficult to test (no unit testing possible) J2EE services are not very modular (JMS, JTA, EJB, JNDI,...) Component reuse is limited by the container and environment that it's used it EJB Container, Servlet Container, standalone, Rich client, Embedded Devices,... No component wiring on POJO level IoC Containers address that topic
51 Spring and Inversion of Control Inversion of Control, a.k.a. Dependency Injection pattern at the core of Spring Framework advantages of applying IoC: makes code much easier to unit test removes bloat from code, helps you concentrate on implementing the actual business logic select service implementations by configuration, not code no more evil singletons enforces use of several good practices in design
52 Example: but how does it work?!? class MyMain { public static void main(string[] args) { // initialize the IoC container (here it's Spring): XmlBeanFactory xmlbeanfactory = new XmlBeanFactory(new ClassPathResource( beans.xml )); // retrieve MyLogic: MyLogic mylogic = (MyLogic) xmlbeanfactory.getbean( mylogic ); } } // call the method: mylogic.doyourthing(); <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans...> <!-- this is beans.xml --> <beans> <bean id= thebusinesssvc class= foo.businessservicemock /> <bean id= mylogic class= foo.mylogic > <property name= businessservice > <bean ref= thebusinesssvc /> </property> </bean> </beans>
53 What Spring is doing... <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans...> <!-- this is beans.xml --> <beans> <bean id= usermanagerdao" class="my.pkg.dao.hibernateusermanagerdao/"> (1) <bean id= usermanager" class="my.pkg.usermanagerimpl"> (2) <property name="usermanagerdao" ref="usermanagerdao"/> (a) </bean> <bean id="logonservice class= my.pkg.services.logonserviceimpl > (3) <property name= usermanager ref= usermanager /> (b) <property name= guestlogon value= guest /> (c) </bean> </beans> usermanagerdao = new my.pkg.dao.hibernateusermanagerdao(); // (1) usermanager = new my.pkg.usermanagerimpl(); // (2) usermanager.setusermanagerdao(usermanagerdao); // (a) logonservice = new my.pkg.services.logonserviceimpl(); // (3) logonservice.setusermanager(usermanager); // (b) logonservice.setguestlogon("guest"); // (c)
54 Setter and Constructor Injection // Example of Setter Injection package eg; public class ExampleBean { private AnotherBean beanone; private YetAnotherBean beantwo; } public void setbeanone(anotherbean b) { beanone = b; } public void setbeantwo(yetanotherbean b) { beantwo = b; } // Example of Constructor Injection (This is the typical Spring usage) public class ExampleBean { private AnotherBean beanone; private YetAnotherBean beantwo; public ExampleBean (AnotherBean a, YetAnotherBean b){ this.beanone = a; this.beantwo = b;
55 BeanFactories A BeanFactory is typically configured in a XML file with the root element: <beans> The XML contains one or more <bean> elements id (or name) attribute to identify the bean class attribute to specify the fully qualified class
56 BeanFactories By default, beans are treated as singletons Can also be prototypes Here is an example: <beans> <bean id= widgetservice class= com.zabada.base.widgetservice > <property name= poolsize > <! -property value here--> </property> </bean> </beans> The bean s ID The bean s fullyqualified classname Maps to a setpoolsize() call
57 Property Values for BeanFactories Strings and Numbers <property name= size ><value>42</value></property> <property name= name ><value>jim</value></property> Arrays and Collections <property name= hobbies > <list> <value>basket Weaving</value> <value>break Dancing</value> </list> </property>
58 Property Values for BeanFactories (continued) The real magic comes in when you can set a property on a bean that refers to another bean in the configuration: <bean name= widgetservice class= com.zabada.base.widgetserviceimpl > <property name= widgetdao > <ref bean= mywidgetdao /> </property> </bean> calls setwidgetdao(mywidgetdao) where mywidgetdao is another bean defined in the configuration This is the basic concept of Inversion of Control
Dan Hayes. October 27, 2005
Spring Introduction and Dependency Injection Dan Hayes October 27, 2005 Agenda Introduction to Spring The BeanFactory The Application Context Inversion of Control Bean Lifecyle and Callbacks Introduction
More informationCONFIGURING A SPRING DEVELOPMENT ENVIRONMENT
Module 5 CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT The Spring Framework > The Spring framework (spring.io) is a comprehensive Java SE/Java EE application framework > Spring addresses many aspects of
More informationSpring Interview Questions
Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationIntroduction to the Spring Framework
Introduction to the Spring Framework Elements of the Spring Framework everything you need Professional programming component based design Inversion of Control principles Creating Components in Spring Dependency
More informationPOJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks
POJOs to the rescue Easier and faster development with POJOs and lightweight frameworks by Chris Richardson cer@acm.org http://chris-richardson.blog-city.com 1 Who am I? Twenty years of software development
More informationSPRING MOCK TEST SPRING MOCK TEST I
http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at
More informationSpring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.
About the Tutorial Spring framework is an open source Java platform that provides comprehensive infrastructure support for developing robust Java applications very easily and very rapidly. Spring framework
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More information2005, Cornell University
Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson bh79@cornell.edu Agenda Kuali Application Architecture CATS Case Study CATS Demo CATS Source
More informationSpring Framework 2.0 New Persistence Features. Thomas Risberg
Spring Framework 2.0 New Persistence Features Thomas Risberg Introduction Thomas Risberg Independent Consultant, springdeveloper.com Committer on the Spring Framework project since 2003 Supporting the
More informationDevelopment of E-Institute Management System Based on Integrated SSH Framework
Development of E-Institute Management System Based on Integrated SSH Framework ABSTRACT The J2EE platform is a multi-tiered framework that provides system level services to facilitate application development.
More informationComparative Analysis of EJB3 and Spring Framework
Comparative Analysis of EJB3 and Spring Framework Janis Graudins, Larissa Zaitseva Abstract: The paper describes main facilities of EJB3 and Spring Framework as well as the results of their comparative
More informationSpring Framework. Christoph Pickl
Spring Framework Christoph Pickl agenda 1. short introduction 2. basic declaration 3. medieval times 4. advanced features 5. demo short introduction common tool stack Log4j Maven Spring Code Checkstyle
More informationSitesbay.com. A Perfect Place for All Tutorials Resources. Java Projects C C++ DS Interview Questions JavaScript
Sitesbay.com A Perfect Place for All Tutorials Resources Java Projects C C++ DS Interview Questions JavaScript Core Java Servlet JSP JDBC Struts Hibernate Spring Java Projects C C++ DS Interview Questions
More informationChris Donnan & Solomon Duskis
The Peer Frameworks Series -.Net and Java Spring Framework Developer Session Chris Donnan & Solomon Duskis All Rights Reserved 0 Overview 600-630 Light Snack 630 700 Introduction to Inversion of Control,
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationIntroduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX
Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject
More informationJAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP
2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationcom Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-
www.javabykiran. com 8888809416 8888558802 Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- Java by Kiran J2EE SYLLABUS Servlet JSP XML Servlet
More informationSeam 3. Pete Muir JBoss, a Division of Red Hat
Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationJ2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies
J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:
More informationModular Java Applications with Spring, dm Server and OSGi
Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationIntroducing the Spring framework
Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Introducing the Spring framework Marco Piccioni Yet another framework? It addresses areas that other frameworks
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More information~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~
1 Component: Szyperski s definition of a component: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can
More informationSpring, a J2EE extension framework. JUGS presentation by Philipp H. Oser
Spring, a J2EE extension framework JUGS presentation by Philipp H. Oser 30.08.2005 Agenda 1 Introduction Context Essential spring Demo Spring in more details More spring features: configuration, interceptors,
More informationSpring JavaConfig. Reference Documentation. version 1.0-m Rod Johnson, Costin Leau. Copyright (c) Interface21
Spring JavaConfig Reference Documentation version 1.0-m2 2007.05.08 Rod Johnson, Costin Leau Copyright (c) 2005-2007 Interface21 Copies of this document may be made for your own use and for distribution
More informationErik Dörnenburg JAOO 2003
Persistence Neutrality using the Enterprise Object Broker application service framework Erik Dörnenburg JAOO 2003 Sample project Simple application Heavy client One business entity Basic operations Person
More informationLightweight J2EE Framework
Lightweight J2EE Framework Struts, spring, hibernate Software System Design Zhu Hongjun Session 4: Hibernate DAO Refresher in Enterprise Application Architectures Traditional Persistence and Hibernate
More informationSpecialized - Mastering Spring 4.2
Specialized - Mastering Spring 4.2 Code: Lengt h: URL: TT3330-S4 5 days View Online The Spring framework is an application framework that provides a lightweight container that supports the creation of
More informationFast Track to Spring 3 and Spring MVC / Web Flow
Duration: 5 days Fast Track to Spring 3 and Spring MVC / Web Flow Description Spring is a lightweight Java framework for building enterprise applications. Its Core module allows you to manage the lifecycle
More informationStruts: Struts 1.x. Introduction. Enterprise Application
Struts: Introduction Enterprise Application System logical layers a) Presentation layer b) Business processing layer c) Data Storage and access layer System Architecture a) 1-tier Architecture b) 2-tier
More informationApplication Servers in E-Commerce Applications
Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.
More informationDependency Injection. Kenneth M. Anderson University of Colorado, Boulder Lecture 30 CSCI 4448/ /08/11
Dependency Injection Kenneth M. Anderson University of Colorado, Boulder Lecture 30 CSCI 4448/5448 12/08/11 1 Goals of the Lecture Introduce the topic of dependency injection See examples using the Spring
More informationJava EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module
Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services
More informationCOURSE DETAILS: CORE AND ADVANCE JAVA Core Java
COURSE DETAILS: CORE AND ADVANCE JAVA Core Java 1. Object Oriented Concept Object Oriented Programming & its Concepts Classes and Objects Aggregation and Composition Static and Dynamic Binding Abstract
More informationAPPLICATION ON IOC PATTERN IN INTEGRATION OF WORKFLOW SYSTEM WITH APPLICATION SYSTEMS
APPLICATION ON IOC PATTERN IN INTEGRATION OF WORKFLOW SYSTEM WITH APPLICATION SYSTEMS Limin Ao *, Xiaodong Zhu, Wei Zhou College of Information Engineering, Northeast Dianli University, Jilin, Jilin, China,
More informationReference Documentation
Reference Documentation Version 1.2.1 (Work in progress) Copyright (c) 2004-2005 Rod Johnson, Juergen Hoeller, Alef Arendsen, Colin Sampaleanu, Darren Davison, Dmitriy Kopylenko, Thomas Risberg, Mark Pollack,
More informationSpring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY
Spring Persistence with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY About the Authors About the Technical Reviewer Acknowledgments xii xiis xiv Preface xv Chapter 1: Architecting Your Application with
More informationDesign patterns using Spring and Guice
Design patterns using Spring and Guice Dhanji R. Prasanna MANNING contents 1 Dependency 2 Time preface xv acknowledgments xvii about this book xix about the cover illustration xxii injection: what s all
More informationJava EE 7: Back-End Server Application Development
Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application
More informationJava Spring Hibernate Interview Questions And Answers For
Java Spring Hibernate Interview Questions And Answers For We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer,
More informationMyBatis-Spring Reference Documentation
MyBatis-Spring 1.0.2 - Reference Documentation The MyBatis Community (MyBatis.org) Copyright 2010 Copies of this document may be made for your own use and for distribution to others, provided that you
More informationDeveloping Applications with Java EE 6 on WebLogic Server 12c
Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need
More informationThe Spring Framework for J2EE
The Spring Framework for J2EE Dan Hayes Chariot Solutions March 22, 2005 Agenda Introduction to the Spring Framework Inversion of Control and AOP* Concepts The Spring Bean Container Spring in the Business
More informationDesigning a Distributed System
Introduction Building distributed IT applications involves assembling distributed components and coordinating their behavior to achieve the desired functionality. Specifying, designing, building, and deploying
More informationEnterprise AOP With the Spring Framework
Enterprise AOP With the Spring Framework Jürgen Höller VP & Distinguished Engineer, Interface21 Agenda Spring Core Container Spring AOP Framework AOP in Spring 2.0 Example: Transaction Advice What's Coming
More informationPage 1
Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory
More informationWHAT IS EJB. Security. life cycle management.
EJB WHAT IS EJB EJB is an acronym for enterprise java bean. It is a specification provided by Sun Microsystems to develop secured, robust and scalable distributed applications. To run EJB application,
More informationCOMP9321 Web Application Engineering
COMP9321 Web Application Engineering Design Patterns II Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 7 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442
More informationCore Capabilities Part 3
2008 coreservlets.com The Spring Framework: Core Capabilities Part 3 Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/spring.html Customized Java EE Training:
More informationBusiness Logic and Spring Framework
Business Logic and Spring Framework Petr Křemen petr.kremen@fel.cvut.cz Winter Term 2017 Petr Křemen (petr.kremen@fel.cvut.cz) Business Logic and Spring Framework Winter Term 2017 1 / 32 Contents 1 Business
More informationChapter 13. Hibernate with Spring
Chapter 13. Hibernate with Spring What Is Spring? Writing a Data Access Object (DAO) Creating an Application Context Putting It All Together 1 / 24 What is Spring? The Spring Framework is an Inversion
More informationExam Questions 1Z0-895
Exam Questions 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam https://www.2passeasy.com/dumps/1z0-895/ QUESTION NO: 1 A developer needs to deliver a large-scale
More informationThis course is intended for Java programmers who wish to write programs using many of the advanced Java features.
COURSE DESCRIPTION: Advanced Java is a comprehensive study of many advanced Java topics. These include assertions, collection classes, searching and sorting, regular expressions, logging, bit manipulation,
More informationJava EE Architecture, Part Two. Java EE architecture, part two 1
Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,
More informationImplementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.
Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services
More informationJava J Course Outline
JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The
More informationMod4j Application Architecture. Eric Jan Malotaux
Mod4j Application Architecture Eric Jan Malotaux Mod4j Application Architecture Eric Jan Malotaux 1.2.0 Copyright 2008-2009 Table of Contents 1. Introduction... 1 1.1. Purpose... 1 1.2. References...
More informationUsing JNDI from J2EE components
Using JNDI from J2EE components Stand-alone Java program have to specify the location of the naming server when using JNDI private static InitialContext createinitialcontext() throws NamingException {
More informationpurequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc.
purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc. Agenda The Problem Data Access in Java What is purequery? How Could purequery Help within My Data Access Architecture?
More informationEJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java
EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution
More informationEmbrace Factories Factories. By Rob Gonda
Embrace Factories Factories By Rob Gonda Brief History of OOP for CF Once upon a time Procedural Code Spaghetti Code Organized a) Includes b) Modules OOP / CFC (mx+) Objects as containers The Big Object
More informationJ2EE Technologies. Industrial Training
COURSE SYLLABUS J2EE Technologies Industrial Training (4 MONTHS) PH : 0481 2411122, 09495112288 Marette Tower E-Mail : info@faithinfosys.com Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01 www.faithinfosys.com
More informationIntroduction to Spring Framework: Hibernate, Spring MVC & REST
Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual
More informationThe Spring Framework: Overview and Setup
2009 Marty Hall The Spring Framework: Overview and Setup Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/spring.html Customized Java EE Training: http://courses.coreservlets.com/
More informationSSC - Web development Model-View-Controller for Java Servlet
SSC - Web development Model-View-Controller for Java Servlet Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Java Server Pages (JSP) Model-View-Controller
More informationFast Track. Evaluation Copy. to Spring 3.x. on Eclipse/Tomcat. LearningPatterns, Inc. Courseware. Student Guide
Fast Track to Spring 3.x on Eclipse/Tomcat LearningPatterns, Inc. Courseware Student Guide This material is copyrighted by LearningPatterns Inc. This content and shall not be reproduced, edited, or distributed,
More informationWeb Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture
Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture Objectives Look at common patterns for designing Web-based presentation layer behavior Model-View-Control
More informationIntroduction to componentbased software development
Introduction to componentbased software development Nick Duan 8/31/09 1 Overview What is a component? A brief history of component software What constitute the component technology? Components/Containers/Platforms
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationJava Spring Hibernate Interview Questions And Answers For
Java Spring Hibernate Interview Questions And Answers For We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer,
More informationDesarrollo de Aplicaciones Web Empresariales con Spring 4
Desarrollo de Aplicaciones Web Empresariales con Spring 4 Referencia JJD 296 Duración (horas) 30 Última actualización 8 marzo 2018 Modalidades Presencial, OpenClass, a medida Introducción Over the years,
More informationOracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product.
Oracle EXAM - 1Z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Buy Full Product http://www.examskey.com/1z0-895.html Examskey Oracle 1Z0-895 exam demo product is here for you to test
More informationJVA-117A. Spring-MVC Web Applications
JVA-117A. Spring-MVC Web Applications Version 4.2 This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container,
More informationCourse Content for Java J2EE
CORE JAVA Course Content for Java J2EE After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? PART-1 Basics & Core Components Features and History
More informationBEAAquaLogic. Service Bus. Interoperability With EJB Transport
BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking
More informationJ2EE AntiPatterns. Bill Dudney. Object Systems Group Copyright 2003, Object Systems Group
J2EE AntiPatterns Bill Dudney Object Systems Group bill@dudney.net Bill Dudney J2EE AntiPatterns Page 1 Agenda What is an AntiPattern? What is a Refactoring? AntiPatterns & Refactorings Persistence Service
More informationIntroduction to Spring Framework: Hibernate, Web MVC & REST
Introduction to Spring Framework: Hibernate, Web MVC & REST Course domain: Software Engineering Number of modules: 1 Duration of the course: 50 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual Products
More informationWiring Your Web Application with Open Source Java
1 of 13 5/16/2006 3:39 PM Published on ONJava.com (http://www.onjava.com/) http://www.onjava.com/pub/a/onjava/2004/04/07/wiringwebapps.html See this if you're having trouble printing code examples Wiring
More informationCopyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum
StudentDAO DAOFactory insertstudent (s:student):void findstudent (id:int):student removestudent (s:student):void... getstudentdao():studentdao getadvisordao():advisordao... OracleDAO DB2DAO
More informationIntroduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve
Enterprise Java Introduction Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve Course Description This course focuses on developing
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationAdvanced Java Programming
Advanced Java Programming Length: 4 days Description: This course presents several advanced topics of the Java programming language, including Servlets, Object Serialization and Enterprise JavaBeans. In
More informationIntegrated Architecture for Web Application Development Based on Spring Framework and Activiti Engine
Integrated Architecture for Web Application Development Based on Spring Framework and Activiti Engine Xiujin Shi,Kuikui Liu,Yue Li School of Computer Science and Technology Donghua University Shanghai,
More informationDependency Injection and Spring. INF5750/ Lecture 2 (Part II)
Dependency Injection and Spring INF5750/9750 - Lecture 2 (Part II) Problem area Large software contains huge number of classes that work together How to wire classes together? With a kind of loose coupling,
More informationWhat Is Needed. Learning the technology is not enough Industry best practices Proven solutions How to avoid bad practices? a Real-life Example.
1 Push J2EE your Best development Practices further using a Real-life Example. Casey Chan nology Evangelist casey.chan@sun.com Push ebay your Architecture: development furtherhow to Go From there Microsoft
More informationFor this week, I recommend studying Chapter 2 of "Beginning Java EE 7".
For this week, I recommend studying Chapter 2 of "Beginning Java EE 7". http://find.lib.uts.edu.au/?r=opac_b2874770 261 We have been using a few container services and annotations but they have not been
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationADVANCED JAVA TRAINING IN BANGALORE
ADVANCED JAVA TRAINING IN BANGALORE TIB ACADEMY #5/3 BEML LAYOUT, VARATHUR MAIN ROAD KUNDALAHALLI GATE, BANGALORE 560066 PH: +91-9513332301/2302 www.traininginbangalore.com 2EE Training Syllabus Java EE
More informationIntroduction to Spring
Introduction to Spring Version 4.1 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course provides an overview of Spring, wandering onto the territory
More informationFrom Code To Architecture
From Code To Architecture Kirk Knoernschild Chief Technology Strategist QWANtify, Inc. kirk@qwantify.com Agenda Attempt the impossible Define Architecture Logical vs. Physical Design Component Heuristics
More information