Advanced Web Systems 5- Designing Complex Applications. -The IOC Pattern -Light Weight Container. A. Venturini

Size: px
Start display at page:

Download "Advanced Web Systems 5- Designing Complex Applications. -The IOC Pattern -Light Weight Container. A. Venturini"

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

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 information

CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT

CONFIGURING 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 information

Spring Interview Questions

Spring 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 information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket 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 information

Introduction to the Spring Framework

Introduction 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 information

POJOs 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 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 information

SPRING MOCK TEST SPRING MOCK TEST I

SPRING 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 information

Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.

Spring 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 information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN 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 information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & 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 information

2005, Cornell University

2005, 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 information

Spring Framework 2.0 New Persistence Features. Thomas Risberg

Spring 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 information

Development of E-Institute Management System Based on Integrated SSH Framework

Development 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 information

Comparative Analysis of EJB3 and Spring Framework

Comparative 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 information

Spring Framework. Christoph Pickl

Spring 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 information

Sitesbay.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 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 information

Chris Donnan & Solomon Duskis

Chris 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 information

Enterprise 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 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 information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction 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 information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA 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 information

1 Software Architecture

1 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 information

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

com 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 information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 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 information

Application Architectures, Design Patterns

Application 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 information

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

J2EE - 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 information

Modular Java Applications with Spring, dm Server and OSGi

Modular 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 information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web 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 information

CSE 70 Final Exam Fall 2009

CSE 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 information

Introducing the Spring framework

Introducing 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 information

Appendix A - Glossary(of OO software term s)

Appendix 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) ~

~ 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 information

Spring, a J2EE extension framework. JUGS presentation by Philipp H. Oser

Spring, 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 information

Spring JavaConfig. Reference Documentation. version 1.0-m Rod Johnson, Costin Leau. Copyright (c) Interface21

Spring 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 information

Erik Dörnenburg JAOO 2003

Erik 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 information

Lightweight J2EE Framework

Lightweight 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 information

Specialized - Mastering Spring 4.2

Specialized - 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 information

Fast Track to Spring 3 and Spring MVC / Web Flow

Fast 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 information

Struts: Struts 1.x. Introduction. Enterprise Application

Struts: 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 information

Application Servers in E-Commerce Applications

Application 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 information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web 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 information

Dependency 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/ /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 information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java 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 information

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

COURSE 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 information

APPLICATION ON IOC PATTERN IN INTEGRATION OF WORKFLOW SYSTEM WITH APPLICATION SYSTEMS

APPLICATION 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 information

Reference Documentation

Reference 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 information

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

Spring 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 information

Design patterns using Spring and Guice

Design 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 information

Java EE 7: Back-End Server Application Development

Java 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 information

Java Spring Hibernate Interview Questions And Answers For

Java 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 information

MyBatis-Spring Reference Documentation

MyBatis-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 information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing 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 information

The Spring Framework for J2EE

The 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 information

Designing a Distributed System

Designing 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 information

Enterprise AOP With the Spring Framework

Enterprise 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 information

Page 1

Page 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 information

WHAT IS EJB. Security. life cycle management.

WHAT 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 information

COMP9321 Web Application Engineering

COMP9321 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 information

Core Capabilities Part 3

Core 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 information

Business Logic and Spring Framework

Business 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 information

Chapter 13. Hibernate with Spring

Chapter 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 information

Exam Questions 1Z0-895

Exam 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 information

This course is intended for Java programmers who wish to write programs using many of the advanced Java features.

This 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 information

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java 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 information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing 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 information

Java J Course Outline

Java 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 information

Mod4j Application Architecture. Eric Jan Malotaux

Mod4j 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 information

Using JNDI from J2EE components

Using 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 information

purequery 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. 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 information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB 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 information

Embrace Factories Factories. By Rob Gonda

Embrace 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 information

J2EE Technologies. Industrial Training

J2EE 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 information

Introduction to Spring Framework: Hibernate, Spring MVC & REST

Introduction 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 information

The Spring Framework: Overview and Setup

The 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 information

SSC - Web development Model-View-Controller for Java Servlet

SSC - 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 information

Fast Track. Evaluation Copy. to Spring 3.x. on Eclipse/Tomcat. LearningPatterns, Inc. Courseware. Student Guide

Fast 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 information

Web 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 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 information

Introduction to componentbased software development

Introduction 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 information

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Object 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 information

Java Spring Hibernate Interview Questions And Answers For

Java 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 information

Desarrollo de Aplicaciones Web Empresariales con Spring 4

Desarrollo 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 information

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product.

Oracle 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 information

JVA-117A. Spring-MVC Web Applications

JVA-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 information

Course Content for Java J2EE

Course 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 information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. 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 information

J2EE AntiPatterns. Bill Dudney. Object Systems Group Copyright 2003, Object Systems Group

J2EE 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 information

Introduction to Spring Framework: Hibernate, Web MVC & REST

Introduction 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 information

Wiring Your Web Application with Open Source Java

Wiring 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 information

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum

Copyright 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 information

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Introduction. 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 information

The Design Patterns Matrix From Analysis to Implementation

The 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 information

Advanced Java Programming

Advanced 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 information

Integrated 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 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 information

Dependency Injection and Spring. INF5750/ Lecture 2 (Part II)

Dependency 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 information

What Is Needed. Learning the technology is not enough Industry best practices Proven solutions How to avoid bad practices? a Real-life Example.

What 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 information

For 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. 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 information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The 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 information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: 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 information

ADVANCED JAVA TRAINING IN BANGALORE

ADVANCED 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 information

Introduction to Spring

Introduction 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 information

From Code To Architecture

From 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