Top Banner

of 45

Level 2.2 CBT Course on Advanced Programming With Spring

Apr 03, 2018

Download

Documents

Senthil Kumar
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    1/45

    Oct 13 2008 TPG Confidential1

    Technology Practices GroupJava Competency Framework

    "Incubate, Nurture and Deploy Technology Experts

    Innovate, Build and Deliver Technology Solutions

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    2/45

    Oct 13 2008 TPG Confidential2

    Document Details

    Business Unit BFSIGroup Technology Practices Group

    Practice Java Practice

    Sub-Practices Java CoE technologies

    Initiative Competency Framework

    Competency Level 2.2 Level 3

    Experience Level 3 Years

    Pre-Requisite J2EE

    Version 1.1

    Author MuthuVeerappan Krishnamoorthy

    Baskar Muniyandi

    Total number of slides 45

    Duration of learning 24hrs

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    3/45

    Oct 13 2008 TPG Confidential3

    Revision History

    Version

    (x.yy)

    Date of

    Revision

    Description of Change Reason for

    Change

    Affected

    Sections

    Approved By

    1.0 September

    2007

    Initial Version

    1.1 January

    2009

    Content on new templates.

    Review and updation.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    4/45

    Oct 13 2008 TPG Confidential4

    Objective

    ** Please read the objective of this content clearly **

    This presentation is essentially to set the context oflearning on this topic. The content deals with thecoverage( both depth and width applicable) for thisparticular topic in a concise format, providing an overviewof the elements that makes up this Topic level.

    While this content provides with a high levelunderstanding of the topic to the level of depth that is

    expected at this particular level( Levels 1.1, 2.1 etc ) , it ishighly recommended to have a detailed in depth learningusing the resources mentioned in the AdditionalResources section.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    5/45

    Oct 13 2008 TPG Confidential5

    Agenda

    Introduction to Spring What is Spring? Spring Components Overview of Spring Components

    Integrating with other web frameworks

    Accessing and Implementing EJBs

    JMX Support Sending Email with Spring

    Scheduling Jobs using Quartz or Timer

    Exception Handling

    Testing

    Features of Spring Framework Architectural Layers in a typical Spring Application

    Advantages

    Summary

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    6/45

    Oct 13 2008 TPG Confidential6

    1.1 What is Spring?

    A J2EE Framework designed to make building applicationseasier.

    Provides a means to manage your business objects and their

    dependencies.

    Inversion of Control allows classes to be loosely coupled and

    dependencies written in XML. Spring is a Lightweight Appl icat ionFramework.

    Where Struts, WebWork and others can be considered Web

    frameworks, Spring addresses all tiers of an application.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    7/45Oct 13 2008 TPG Confidential7

    1.2 Spring Components

    CoreSupporting UtilitiesBean Container

    AOPSource level

    metadata

    AOP

    infrastructure

    ORMHibernate/IBatis/JDO

    Support

    DAOTransaction Infrastructure

    JDBC / DAO Support

    WebWebApplicationContext

    Multipart resolver

    Web utilities

    ContextApplication context

    UI support / Validation

    JNDI,EJB support and

    Remoting mail

    Web MVCWeb MVC

    FrameworkWeb Views

    JSP / Velocity

    PDF / Excel

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    8/45Oct 13 2008 TPG Confidential8

    1.3 Overview of Spring Components

    Core + Context = Framework

    IoC bean container

    Application context, message sources, resource loading, wiringinfrastructure.

    DAO

    JDBC Templates taking care of connections, statements,exceptions.

    DataAccessException Hierarchy. Transaction Infrastructure

    Programmatic

    Declarative through IoC & AOP

    Pluggable strategies (e.g. JDBC, JTA, JDO)

    ORM

    Extends DAO, integrates O/R Mapper with Spring concepts Transaction SPI

    Templates

    Factories

    Hibernate, JDO, OJB, iBATIS

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    9/45Oct 13 2008 TPG Confidential9

    1.3 Overview of Spring Components (Cont..)

    AOP

    Method Interception Adding functionality before, after and around a method call or in case of an

    exception

    Introduction

    Adding methods or fields to an existing class or interface

    Useful for declarative enterprise services

    Transaction management

    Security

    Thread management

    Tracing, auditing, notification Web

    Web application context

    Binding & validation and web utilities

    Multipart resolver for file upload

    Supports Struts, JSF, WebWorks, Tapestry, Web MVC

    Springs IoC web framework

    Generic DispatcherServlet and controller

    Designed for any view technology (JSP, JSTL )

    Theme support (CSS/Images/HTML bundles)

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    10/45Oct 13 2008 TPG Confidential10

    2.1 Integrating with Other Frameworks

    Spring can be easily integrated into any Java-based web framework like

    JavaServer Faces

    Struts

    Tapestry

    WebWork

    Spring integrates nicely with other web frameworks with two methodologies:

    Look up Spring beans within Controllers/Actions via the conveniencestatic method:WebApplicationContextUtils.getWebApplicationContext(servletContext).getBean(beanName)

    Configure the Controllers/Actions for the web framework in a SpringBeanFactory and then use Spring provided proxies in the actual web

    framework configuration When available, this methodology is preferred

    This approach lets you design your Controllers/Actions withdependency injection and makes your Controller/Actions moretestable

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    11/45Oct 13 2008 TPG Confidential11

    2.1 Integrating with other web frameworks

    All you need to do is to declare the ContextLoaderListenerin your web.xml and use acontextConfigLocation to set which context files to load.

    The :

    The :

    If you don't specify the contextConfigLocation context parameter, theContextLoaderListener will look for a/WEB-INF/applicationContext.xmlfile to load.Once the context files are loaded, Spring creates a WebApplicationContext objectbased on the bean definitions and puts it into the ServletContext.

    contextConfigLocation

    /WEB-INF/applicationContext*.xml

    org.springframework.web.context.ContextLoaderListener

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    12/45Oct 13 2008TPG Confidential 12

    2.2 Web Integration - JSF

    The easiest way to integrate your Spring middle-tier with your JSF web layer is to use the

    DelegatingVariableResolver

    org.springframework.web.jsf.DelegatingVariableResolver

    en

    en

    es

    messages

    ..

    The DelegatingVariableResolverwill first delegate value lookups to the default resolver of

    the underlying JSF implementation, and then to Spring's root WebApplicationContext.

    This allows you to easily inject dependencies into your JSF-managed beans.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    13/45Oct 13 2008 TPG Confidential

    13

    2.3 Web Integration - Struts

    To integrate your Struts application with Spring, you have two options:

    Configure Spring to manage your Actions as beans, using the ContextLoaderPlugin, and set theirdependencies in a Spring context file.

    Subclass Spring'sActionSupportclasses and grab your Spring-managed beans explicitly using a

    getWebApplicationContext() method.

    public class UserAction extends DispatchActionSupport {

    public ActionForward execute(ActionMapping mapping, ActionForm form,

    HttpServletRequest request, HttpServletResponse response) throws Exception {

    ..WebApplicationContext ctx = getWebApplicationContext();

    UserManager mgr = (UserManager) ctx.getBean("userManager");

    // talk to manager for business logic

    return mapping.findForward("success");

    }

    }

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    14/45Oct 13 2008 TPG Confidential

    14

    3.1 Accessing & Implementing EJB

    EJB Access With EJBs it is usual to have

    A ServiceLocator

    Takes care of JNDI, initial context, EJB home lookup

    A Business Delegate

    Reducing coupling, hides the implementation Spring Access

    Spring approach is to allow the creation and use of proxy objects,

    normally configured inside a Spring ApplicationContext or

    BeanFactory, which act as code-less business delegates.

    You do not need to write another Service Locator, another JNDIlookup, or duplicate methods in a hand-coded Business Delegate

    unless youre adding real value.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    15/45Oct 13 2008 TPG Confidential

    15

    To obtain the controller object out of a Spring ApplicationContext or BeanFactory,

    configure a LocalStatelessSessionProxyFactoryBeaninstance, which will be EJB

    proxy object.

    To use a Local, Stateless, Session bean, the spring config entry would be

    The myComponentbean definition creates a proxy for the EJB, which implements the

    business method interface. The EJB local home is cached on startup, so theres only a single JNDI lookup.

    You can swap the bean implementation with a POJO or mock objects without

    changing the client code.

    You dont have to write a single line of JNDI lookup or other EJB plumbing code as

    part of the application.

    3.2 Accessing a Local SLSB (StateLess Session

    Beans)

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    16/45Oct 13 2008 TPG Confidential

    16

    3.3 Accessing a Remote SLSB

    Accessing remote EJBs is essentially identical to accessing localEJBs, except that theSimpleRemoteStatelessSessionProxyFactoryBean is used.

    To use a Remote, Stateless, Session bean

    myComponent

    com.mycom.MyComponent

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    17/45Oct 13 2008 TPG Confidential

    17

    3.4 EJB Implementation classes

    To implement a Stateless or Stateful session bean, or Message Driven

    bean, you derive your implementation class from

    AbstractStatelessSessionBean, AbstractStatefulSessionBean, and

    AbstractMessageDrivenBean/AbstractJmsMessageDrivenBean,

    respectively.

    AbstractEnterpriseBean

    Loads a BeanFactory

    EJB environment variable ejb/BeanFactroyPath specifies the

    location on the classpathof an XML bean factory definition

    E.g. /com/mycom/mypackage/mybeans.xml

    Default bean factory is XmlApplicationContext

    Applications should use the EJB only as a facade

    Business logic deferred to beans in BeanFactory

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    18/45Oct 13 2008 TPG Confidential

    18

    3.4.1 Implementing a SLSB

    Stateless Session Beans

    Extend AbstractStatelessSessionBean Save the session context

    Empty implementation of ejbRemove()

    ejbCreate() method

    Throws exception in ejbActivate() and ejbPassivate()

    Subclasses must implement onEjbCreate()

    Example

    class MySlsb extends AbstractStatelessSessionBean {

    protected void onEjbCreate() throws CreateException {

    ...

    }

    public void businessMethod() {BeanFactory bf = getBeanFactory();

    MyBusinessBean mbb = bf.getBean("myBusinessBean");

    ...

    }

    }

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    19/45

    Oct 13 2008 TPG Confidential19

    3.4.2 Implementing a SFSB

    Stateful Session Beans

    Extend AbstractStatefulSessionBean Save the session context

    Empty implementation of ejbRemove()

    ejbCreate() method

    Subclasses must implement onEjbCreate(), ejbActivate() and ejbPassivate()

    Example

    class MySfsb extends AbstractStatefulSessionBean {

    public void ejbCreate() throws CreateException {

    loadBeanFactory();

    ...

    }

    public void ejbActivate() { . }

    public void ejbPassivate() { . }public void businessMethod() {

    BeanFactory bf = getBeanFactory();

    MyBusinessBean mbb = bf.getBean("myBusinessBean");

    ...

    }

    }

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    20/45

    Oct 13 2008 TPG Confidential20

    3.4.3 Implementing a MDB

    Exampleclass MyMdb extends AbstractJmsMessageDrivenBean {

    protected void onEjbCreate() throws CreateException {

    ...

    }

    public void onMessage(Message message) {

    BeanFactory bf = getBeanFactory();

    MyBusinessBean mbb =

    bf.getBean("myBusinessBean");

    ...}

    }

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    21/45

    Oct 13 2008 TPG Confidential21

    4.1 Spring JMX Support

    Automatic registration of any Spring bean as a JMX MBean Flexible control of the management interface

    Flexible control of Object Names

    Declarative exposure of MBeans over remote, JSR-160

    connectors

    Proxying of both local and remote MBeans Control of MBean registration behavior (Spring 2.0)

    Notification support (Spring 2.0)

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    22/45

    Oct 13 2008 TPG Confidential22

    4.2 Exporting your Beans to JMX

    Core class MBeanExporter:

    Registers Spring beans as JMX MBeans with the JMX MBeanServer.

    Explicit registration of any Spring bean:

    Valid JMX MBeans

    POJOs

    Automatic detection / registration of valid JMX MBeans.

    Example

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    23/45

    Oct 13 2008 TPG Confidential23

    4.3 Automatic Registration

    MBeans can be automatically detected by the MBeanExporter bysetting the autodetect property to true

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    24/45

    Oct 13 2008 TPG Confidential24

    4.4 Management Interface Control

    Powerful and comprehensive facilities Many ways to control the exposed interface

    MBeanExporterdelegates to implementations of

    MBeanInfoAssemblerfor creating management interfaces at

    runtime.

    Reflection-based (default, exposes everything)

    Source Level Annotationbased

    Commons Attributes

    JDK 5.0 Annotations

    Java Interface-based Method name-based

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    25/45

    Oct 13 2008 TPG Confidential25

    4.5 Object Name Control

    Many ways to control ObjectNames as well MBeanExporterdelegates to implementations of

    ObjectNamingStrategy for creating ObjectNames

    Based on key from beans property map (default)

    Based on external Properties file

    Based on JVMs notion of object identity

    Based on source-level annotation

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    26/45

    Oct 13 2008 TPG Confidential26

    4.6 JSR 160 Connectors / Proxies

    Spring JMX supports creating both server and client Connector beans.

    A client Connector bean could point to any remote MBeanServer

    Spring can proxy remote objects:

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    27/45

    Oct 13 2008 TPG Confidential27

    5.1 Sending Email with Spring

    SimpleMailMessage - Creating a message

    SimpleMailMessage msg = new SimpleMailMessage();

    msg.setFrom("[email protected]");

    msg.setTo("[email protected]");

    msg.setCc(new String[] {"[email protected]", "[email protected]"});

    msg.setBcc(new String[] {"[email protected]", "[email protected]"});

    msg.setSubject("my subject");

    msg.setText("my text");

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    28/45

    Oct 13 2008 TPG Confidential28

    5.2 MessageSender

    Defining a message sender

    smtp.mail.org

    joeabc123

    Sending the messageMailSender sender = (MailSender) ctx.getBean("mailSender");

    sender.send(msg);

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    29/45

    Oct 13 2008 TPG Confidential29

    6.1 Scheduling Jobs using Quartz or Timer

    Built-in support for Java 2 Timer

    Timer

    TimerTask

    Quartz Schedulers

    JobDetails

    Triggers

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    30/45

    Oct 13 2008 TPG Confidential30

    6.2 ScheduledTimerTask

    The task that we want to runpublic class MyTask extends TimerTask {

    public void run() {

    // do something

    }

    }

    60000

    1000

    Java bean that wraps a scheduled

    java.util.TimerTask

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    31/45

    Oct 13 2008 TPG Confidential31

    6.3 TimeFactoryBean

    Creating the scheduler

    The Timer starts at bean creation time

    Creates ajava.util.Timer object

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    32/45

    Oct 13 2008 TPG Confidential32

    7.1 Exception Handling

    In general you want to allow fatal exceptions to propagate upthe stack.

    These exceptions can be handled by a last ditch handler

    Log the error

    Notify an administrator

    Display a friendly error-page for the user.

    Use an implementation of the HandlerExceptionResolver

    interface

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    33/45

    Oct 13 2008 TPG Confidential33

    7.2 HandlerExceptionResolver interface

    public interface HandlerExceptionResolver {

    ModelAndView resolveException(

    HttpServletRequest request,

    HttpServletResponse response,Object handler,

    Exception ex);

    }

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    34/45

    Oct 13 2008 TPG Confidential34

    7.3 Configuring the HandlerExceptionResolver

    Special bean, resolved by type Single implementation out of the box

    SimpleMappingExceptionResolver

    Map Exception types to view names

    Puts the Exception into the model automatically.

    Useful out of the box, even better for extension

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    35/45

    Oct 13 2008 TPG Confidential35

    7.4 Configuring SimpleMappingExceptionResolver

    java.lang.Exception=error

    All exceptions are mapped to the error view

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    36/45

    Oct 13 2008 TPG Confidential36

    Rather than build your ownHandlerExceptionResolver extend the

    SimpleMappingExceptionResolver

    Simple process

    Override the resolveException() method

    Call super.resolveException()

    Perform custom processing

    Return (potentially modified) ModelAndView

    7.5 Extending SimpleMappingExceptionResolver

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    37/45

    Oct 13 2008 TPG Confidential37

    8.1 Spring and Testing

    Easier test driven development (TDD)

    Unit testing

    Allows you to test outside the container without using theSpring container.

    Integration testing

    Can use a standalone Spring configuration with mock

    objects for testing. Consider XMLApplicationContext or

    FileSystemApplicationContext.

    Correct wiring of your Spring contexts.

    Data access using JDBC or ORM tool--correctness of SQL

    statements. For example, you can test your DAOimplementation classes

    Easy to test POJOs

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    38/45

    Oct 13 2008 TPG Confidential38

    8.2 Testing outside the container

    Spring MVC is easy to test outside the container Support classes in spring-mock.jar

    MockHttpServletRequest

    MockHttpServletResponse Unit testing

    Use EasyMock/JMock

    Test exception handling

    Test ModelAndView creation Integration testing

    Extend AbstractTransactionalDataSourceSpringContextTests

    Use real service/data tier objects

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    39/45

    Oct 13 2008 TPG Confidential39

    9.1 Features of Spring Framework

    Transaction Management: Spring framework provides a generic abstraction

    layer for transaction management. This allowing the developer to add the

    pluggable transaction managers, and making it easy to demarcate transactions

    without dealing with low-level issues. Spring's transaction support is not tied to

    J2EE environments and it can be also used in container less environments.

    JDBC Exception Handling: The JDBC abstraction layer of the Spring offers

    a meaningful exception hierarchy, which simplifies the error handling strategy Integration with Hibernate, JDO, and iBATIS: Spring provides best

    Integration services with Hibernate, JDO and iBATIS.

    AOP Framework: Spring is best AOP framework

    MVC Framework: Spring comes with MVC web application framework,

    built on core Spring functionality. This framework is highly configurable via

    strategy interfaces, and accommodates multiple view technologies like JSP,

    Velocity, Tiles, iText, and POI. But other frameworks can be easily used instead

    of Spring MVC Framework.

    10 1 A hit t l L i t i l S i

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    40/45

    Oct 13 2008 TPG Confidential40

    10.1 Architectural Layers in a typical Spring

    Application

    JSPs or other views

    Generate HTML

    Web tier actions

    Process user input

    Call Service layer,

    choose view to display,

    Remote service

    exporters:

    Web services or other

    protocols

    Business Services Layer:Exposes key functionality.Manages transaction boundaries,includes business logic.No knowledge of persistence specifics.

    Declarative services typically used here.

    DAO Interface implementing layer

    Retrieves,Saves entities using ORM tool,

    JDBC

    DAO interface layer

    Defines persistence operations,

    independent of implementing

    technology O/R Mapping layer

    Persistent domain object

    (entity)

    Core OO Model

    J

    D

    B

    C

    RDBMS

    10 1 Architectural Layers in a typical Spring

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    41/45

    Oct 13 2008 TPG Confidential41

    10.1 Architectural Layers in a typical Spring

    Application

    Presentation Layer:This is most likely to be a web tier. It should be

    possible to have alternative presentation layers-such as a web tier orremote web services faade-on a single, well-designed middle tier.

    Business Services Layer: This is responsible for transactionalboundaries and providing an entry point for operations on the system as awhole. This layer should have no knowledge of presentation concerns,and should be reusable.

    DAO interface Layer: This is a layer of interfaces independent of anydata access technology that is used to find and persist persistent objects.This layer effectively consists of strategy interfaces for the businessservices layer. This layer should not contain business logic.Implementations of these interfaces will normally use an O/R Mappingtechnology or Springs JDBC abstraction.

    Persistent domain objects: These model real objects or concepts suchas a bank account.

    Databases and legacy systems: By far the most common case is asingle RDBMS.However,there may be multiple databases, or mix ofdatabases and other transactional or non-transactional legacy systems orother enterprise resources.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    42/45

    Oct 13 2008 TPG Confidential42

    Advantages

    Spring is an application frame work. Unlike single tier frameworks

    such as struts or Hibernate, Spring aims to help structure whole

    applications in a consistent, productive manner, pulling together best-

    of-breed single tier frameworks to create a coherent architecture.

    Spring enables you to enjoy the key benefits of J2EE, while

    minimizing the complexity encountered by application code.

    The essence of spring is in providing enterprise services to Plain OldJava Objects(POJOs).This is particularly variable in a J2EE

    environment, but application code delivered as POJOs is naturally in

    a variety of runtime environments.

    Spring is both the most popular and most ambitious of the lightweight

    frameworks. It is the only one to address all architectural tiers of a

    typical J2EE application, and the only one to offer a comprehensive

    range of services, as well as a lightweight container.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    43/45

    Oct 13 2008 TPG Confidential43

    Summary

    Spring integrates existing good solutions and does not compete with

    them

    Spring makes it much easier to access EJBs and implement EJBs and

    functionality within them.

    The JMX support in Spring provides you with the features to easily and

    transparently integrate your Spring application into a JMX

    infrastructure. Spring provides a higher level of abstraction for sending electronic mail

    which shields the user from the specifics of underlying mailing system

    and is responsible for a low level resource handling on behalf of the

    client.

    Spring supports the Timer, part of the JDK since 1.3, and the Quartz

    Scheduler (http://www.quartzscheduler.org).

    Applications built using Spring are very easy to test.

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    44/45

    Oct 13 2008 TPG Confidential44

    References

    http://www.springframework.org/

    http://www.theserverside.com

    Spring Framework Documentation

    http://static.springframework.org/spring/docs

  • 7/28/2019 Level 2.2 CBT Course on Advanced Programming With Spring

    45/45

    Additional Resources

    SL # Topic Element Resource Location/Link Remarks

    1

    Accessing and

    implementing EJBs

    http://static.springframework.org/spring/docs/

    1.2.x/reference/ejb.html

    2 JMX Support

    http://static.springframework.org/spring/docs/

    1.2.x/reference/jmx.html

    3

    Sending Email with

    Spring mail

    abstraction layer

    http://static.springframework.org/spring/docs/

    1.2.x/reference/mail.html

    4

    Scheduling jobs

    using Quartz or Timer

    http://static.springframework.org/spring/docs/

    1.2.x/reference/scheduling.html

    5 Testing

    http://static.springframework.org/spring/docs/

    1.2.x/reference/testing.html

    http://static.springframework.org/spring/docs/1.2.x/reference/ejb.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/ejb.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/jmx.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/jmx.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/mail.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/mail.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/scheduling.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/scheduling.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/testing.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/testing.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/testing.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/testing.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/scheduling.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/scheduling.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/mail.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/mail.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/jmx.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/jmx.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/ejb.htmlhttp://static.springframework.org/spring/docs/1.2.x/reference/ejb.html