SlideShare a Scribd company logo
1 of 37
Download to read offline
Spring Configuration for Alfresco Developers!
    Hitesh Lad   Principal Engineer   Sony Pictures!
Agenda!


             Spring Overview

           Dependency Injection

              Bean Definitions

          Alfresco Spring Bootstrap

              Some Examples
What is Spring?!

 •  The most popular application development framework for
    enterprise Java

 •  Based on code published in “Expert One-on-One J2EE
    Design and Development” by Rod Johnson (Wrox, 2002).

 •  Made up of many modules

 •  Fosters integration with good existing solutions
What is a Spring Bean?!

•  Plain Old Java Objects!
 •  No special interfaces or base classes needed!
 •  Usually have getter and setter methods for accessing properties!
 •  Can be interrogated or manipulated via the Java Reflection API!


•  Focused on implementing your business logic!
 •  Across all tiers of your application!
 •  Usually highly cohesive!


•  Not an old pre-3.0 EJB!!

•  Usually agnostic to the Spring container!
Agenda!


              Spring Overview

           Dependency Injection

              Bean Definitions

          Alfresco Spring Bootstrap

              Some Examples
What is Dependency Injection?!

•  Springʼs Dependency Injection instantiates and combines
   beans to form your application!

•  Decouples the configuration and specification of
   dependencies from your actual program logic!

•  Removes the need for programmatic singletons!

•  Beans should implements and depend on interfaces!
Dependency Injection Example!
Dependency Injection Example, cont.!
Dependency Injection Example - XML!
BeanFactory and ApplicationContext!

•  org.springframework.beans.factory.BeanFactory
•    Base interface for actual Spring DI container!
•    Instantiates or sourcing application objects!
•    Configures such objects!
•    Assembles the dependencies between these objects!

•  org.springframework.context.ApplicationContext
•  ApplicationContext is a complete superset of a BeanFactory!
•  adds enhanced capabilities to it, more J2EE and enterprise-centric!
BeanFactories and ApplicationContexts!
Bean Definition!

Bean are represented as BeanDefinition objects!

•  Bean Identifier(s)!

•  Class name!

•  Bean Properties / Constructor-Args!

•  Behavioral Elements!

•  Definition Reuse!
Bean Definition - Identifiers!

•    All beans must have at least 1 identifier!
•    Beans identifiers must be unique withind BeanFactory!
•    Prefer using id attribute vs name attribute!
•    Multiple identifiers are considered aliases!
Bean Definition - Class Names!

•  Class attribute is usually the class we want to construct!
•  Class is almost always needed!
 •  Except for non-static factory beans and abstract beans!
•  Use fully qualified class names!
•  FactoryBean interface build object of different types!
Bean Definition - Properties!

•  Writeable Bean Properties correspond to “setters”!
•  Property name follows JavaBean convention!
•  Values set can be primitives or objects!
 •  Static values, e.g. Strings, ints, …!
 •  Property lookups, from a Properties file or Environment variable!
 •  Other bean definitions references!
Bean Definition – Contructor Args!

•  Number/Type of arguments must match an existing
   constructor!

•  Useful for explicitly requiring dependencies!

•  Constructor argument names are usually “erased” during
   compilation !!
 •  Sometimes “index” or “type” needed to disambiguate!
Bean Definition – Contructor Args!
Bean Definition – Bean Scope!

•  Bean default scope is ʻsingletonʼ per BeanFactory!
•  Other scopes – Prototype, Session & Request!
Bean Definition – Reuse!
Bean Definition - Reuse!
Bean Definition – Ordering!
Bean Definition - Recap!
 •  Bean Identifier(s)!

 •  Class name!
   •    Usually the class weʼre constructing!


 •  Bean Properties / Constructor-Args!
   •    Static values!
   •    Property lookups!
   •    Other bean definitions references!


 •  Behavioral Elements!
   •    Scope!
   •    Initialization / Destruction!


 •  Definition Reuse!
Agenda!


               Spring Overview

            Dependency Injection

               Bean Definitions

          Alfresco Spring Bootstrap

               Some Examples
Spring in Alfresco!
alfresco.war - web.xml!
alfresco.war - web-application-context.xml!
alfresco.war - application-context.xml!
Agenda!


              Spring Overview

           Dependency Injection

              Bean Definitions

          Alfresco Spring Bootstrap

              Some Examples
Adding a custom model!
custom-model-context.xml!
alfresco.war – core-services-context.xml!
Adding a custom Web Script !
HelloWorldWebScript.java!
web-scripts-application-context.xml!
Agenda!


              Spring Overview

           Dependency Injection

              Bean Definitions

          Alfresco Spring Bootstrap

              Some Examples
References!

For More Information, check out the following:!

•  http://static.springsource.org/spring/docs/3.0.x/spring-
   framework-reference/html/beans.html!

•  http://wiki.alfresco.com/wiki/Java-
   backed_Web_Scripts_Samples!

•  http://wiki.alfresco.com/wiki/Data_Dictionary_Guide!

•  http://java1337.com/ (My Blog)!
Questions?!

More Related Content

Similar to CUST-9 Spring Config for Alfresco Developers

Spring introduction
Spring introductionSpring introduction
Spring introduction
Lê Hảo
 
Spring framework
Spring frameworkSpring framework
Spring framework
Ajit Koti
 
Contexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platformContexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platform
Bozhidar Bozhanov
 

Similar to CUST-9 Spring Config for Alfresco Developers (20)

PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
 
CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best Practices
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Contexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platformContexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platform
 
Spring session
Spring sessionSpring session
Spring session
 
The future of enterprise dependency injection: Contexts & Dependency Injectio...
The future of enterprise dependency injection: Contexts & Dependency Injectio...The future of enterprise dependency injection: Contexts & Dependency Injectio...
The future of enterprise dependency injection: Contexts & Dependency Injectio...
 
Spring Framework Presantation Part 1-Core
Spring Framework Presantation Part 1-CoreSpring Framework Presantation Part 1-Core
Spring Framework Presantation Part 1-Core
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Bshmanual
BshmanualBshmanual
Bshmanual
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
Maximizing Code Reuse Across Screens
Maximizing Code Reuse Across ScreensMaximizing Code Reuse Across Screens
Maximizing Code Reuse Across Screens
 
Top spring interview question and answer
Top spring interview question and answerTop spring interview question and answer
Top spring interview question and answer
 
springtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdfspringtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdf
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 

More from Alfresco Software

More from Alfresco Software (20)

Alfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossier
 
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management application
 
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
 
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of Alfresco
 
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
 
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
 
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
 
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest API
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
 
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
 
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
 
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
 
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
 
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
 
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
 
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

CUST-9 Spring Config for Alfresco Developers

  • 1. Spring Configuration for Alfresco Developers! Hitesh Lad Principal Engineer Sony Pictures!
  • 2. Agenda! Spring Overview Dependency Injection Bean Definitions Alfresco Spring Bootstrap Some Examples
  • 3. What is Spring?! •  The most popular application development framework for enterprise Java •  Based on code published in “Expert One-on-One J2EE Design and Development” by Rod Johnson (Wrox, 2002). •  Made up of many modules •  Fosters integration with good existing solutions
  • 4. What is a Spring Bean?! •  Plain Old Java Objects! •  No special interfaces or base classes needed! •  Usually have getter and setter methods for accessing properties! •  Can be interrogated or manipulated via the Java Reflection API! •  Focused on implementing your business logic! •  Across all tiers of your application! •  Usually highly cohesive! •  Not an old pre-3.0 EJB!! •  Usually agnostic to the Spring container!
  • 5. Agenda! Spring Overview Dependency Injection Bean Definitions Alfresco Spring Bootstrap Some Examples
  • 6. What is Dependency Injection?! •  Springʼs Dependency Injection instantiates and combines beans to form your application! •  Decouples the configuration and specification of dependencies from your actual program logic! •  Removes the need for programmatic singletons! •  Beans should implements and depend on interfaces!
  • 10. BeanFactory and ApplicationContext! •  org.springframework.beans.factory.BeanFactory •  Base interface for actual Spring DI container! •  Instantiates or sourcing application objects! •  Configures such objects! •  Assembles the dependencies between these objects! •  org.springframework.context.ApplicationContext •  ApplicationContext is a complete superset of a BeanFactory! •  adds enhanced capabilities to it, more J2EE and enterprise-centric!
  • 12. Bean Definition! Bean are represented as BeanDefinition objects! •  Bean Identifier(s)! •  Class name! •  Bean Properties / Constructor-Args! •  Behavioral Elements! •  Definition Reuse!
  • 13. Bean Definition - Identifiers! •  All beans must have at least 1 identifier! •  Beans identifiers must be unique withind BeanFactory! •  Prefer using id attribute vs name attribute! •  Multiple identifiers are considered aliases!
  • 14. Bean Definition - Class Names! •  Class attribute is usually the class we want to construct! •  Class is almost always needed! •  Except for non-static factory beans and abstract beans! •  Use fully qualified class names! •  FactoryBean interface build object of different types!
  • 15. Bean Definition - Properties! •  Writeable Bean Properties correspond to “setters”! •  Property name follows JavaBean convention! •  Values set can be primitives or objects! •  Static values, e.g. Strings, ints, …! •  Property lookups, from a Properties file or Environment variable! •  Other bean definitions references!
  • 16. Bean Definition – Contructor Args! •  Number/Type of arguments must match an existing constructor! •  Useful for explicitly requiring dependencies! •  Constructor argument names are usually “erased” during compilation !! •  Sometimes “index” or “type” needed to disambiguate!
  • 17. Bean Definition – Contructor Args!
  • 18. Bean Definition – Bean Scope! •  Bean default scope is ʻsingletonʼ per BeanFactory! •  Other scopes – Prototype, Session & Request!
  • 21. Bean Definition – Ordering!
  • 22. Bean Definition - Recap! •  Bean Identifier(s)! •  Class name! •  Usually the class weʼre constructing! •  Bean Properties / Constructor-Args! •  Static values! •  Property lookups! •  Other bean definitions references! •  Behavioral Elements! •  Scope! •  Initialization / Destruction! •  Definition Reuse!
  • 23. Agenda! Spring Overview Dependency Injection Bean Definitions Alfresco Spring Bootstrap Some Examples
  • 28. Agenda! Spring Overview Dependency Injection Bean Definitions Alfresco Spring Bootstrap Some Examples
  • 29. Adding a custom model!
  • 32. Adding a custom Web Script !
  • 35. Agenda! Spring Overview Dependency Injection Bean Definitions Alfresco Spring Bootstrap Some Examples
  • 36. References! For More Information, check out the following:! •  http://static.springsource.org/spring/docs/3.0.x/spring- framework-reference/html/beans.html! •  http://wiki.alfresco.com/wiki/Java- backed_Web_Scripts_Samples! •  http://wiki.alfresco.com/wiki/Data_Dictionary_Guide! •  http://java1337.com/ (My Blog)!