SlideShare a Scribd company logo
1 of 19
Developing Java Applications in Agile way using SpringSource Tool Suite (STS) 2.3.2, Maven, Spring tc server Presented by : Sathish Chittibabu 	Date		: May 11th2010 	Event		: Solstice Consultants Round table discussion
Agenda  2/19 Spring Framework (Introduction) Spring 3.0 – What’s new ? (if needed)  SpringSource Tool Suite (STS) 2.3.2 Spring tcServer Maven Quick example  So what’s Agile here ?
No Spring Allergy !!! 3/19
Spring Framework Open source framework for Java development ( Spring Core, Spring MVC, Spring JDBC, Web Services etc.,) Lightweight, non-invasive container Dependency Injection or Inversion of Controller Assemble complex system from loosely coupled POJOs Reusable business and data access components not tied to J2EE services.  Spring managed applications can run in any J2EE environment, as standalone apps, test environments Lean Software Movement 4/19
Spring 3.0 – What’s new ?	 Java 5+ support Spring Expression Language REST Support Portlet 2.0 Declarative model validation Early support for Java EE6 5/19
Spring 3.0 – What’s new ?  ,[object Object]
Generics – Beanfactory returns typed bean instancesT getBean(String name, Class<T> type) Map<String, T> getBeansOfType(Class<T>, type) ,[object Object]
Configuration 3 types
XML Based (applicationContext.xml)
Annotations in the beans (@ Components)
Configuration classes (Spring Java Config Project)6/19
Spring 3.0 – What’s new ?  ,[object Object]
Java configuration class instead of XML Configuration
Everything in Java – stronger type checking
Dependencies confined to one place. No additional annotations inside the app code
Every method returns a spring managed bean@Bean @Primary @Lazy public DemoServicedemoService(){ DemoServiceImpl service = new DemoServiceImpl(); service.setDataSource(…); 	return service; } 7/19
Spring 3.0 – What’s new ?  ,[object Object]
Making custom annotations (your own stereotypes) more powerful
App code doesn’t depend on Spring Annotations instead uses Java Annotations@Service@Scope ("request") @Transactional(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService{} @MyService public class DemoService{ … } 8/19

More Related Content

What's hot

PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootJosué Neis
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkMohit Belwal
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerZeroTurnaround
 
Christophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeChristophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeSkills Matter
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConos890
 
Advanced java
Advanced java Advanced java
Advanced java NA
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New FeaturesHaim Michael
 
Spring - Part 3 - AOP
Spring - Part 3 - AOPSpring - Part 3 - AOP
Spring - Part 3 - AOPHitesh-Java
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPPawanMM
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionPawanMM
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 

What's hot (20)

PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Java Programming - 01 intro to java
Java Programming - 01 intro to javaJava Programming - 01 intro to java
Java Programming - 01 intro to java
 
Java Enterprise Edition
Java Enterprise EditionJava Enterprise Edition
Java Enterprise Edition
 
Mongo db
Mongo dbMongo db
Mongo db
 
Advance Java
Advance JavaAdvance Java
Advance Java
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
Spring 4 Web App
Spring 4 Web AppSpring 4 Web App
Spring 4 Web App
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen Hoeller
 
Christophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeChristophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java Exchange
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheCon
 
Advanced java
Advanced java Advanced java
Advanced java
 
Maven
MavenMaven
Maven
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 
Spring - Part 3 - AOP
Spring - Part 3 - AOPSpring - Part 3 - AOP
Spring - Part 3 - AOP
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOP
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Java and XPages
Java and XPagesJava and XPages
Java and XPages
 

Similar to Developing Agile Java Applications using Spring tools

Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Springifnu bima
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC SeminarJohn Lewis
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
Modern Java Web Development
Modern Java Web DevelopmentModern Java Web Development
Modern Java Web Developmentzenyk
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts frameworks4al_com
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptxNourhanTarek23
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issuesPrashant Seth
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2javatrainingonline
 

Similar to Developing Agile Java Applications using Spring tools (20)

Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Spring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 IntegrationSpring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 Integration
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
Modern Java Web Development
Modern Java Web DevelopmentModern Java Web Development
Modern Java Web Development
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
 
Spring learning path
Spring learning pathSpring learning path
Spring learning path
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Spring 2
Spring 2Spring 2
Spring 2
 
Spring diy projects
Spring diy projectsSpring diy projects
Spring diy projects
 
Spring interview questions
Spring interview questionsSpring interview questions
Spring interview questions
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 

Recently uploaded

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.pdfsudhanshuwaghmare1
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
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 Processorsdebabhi2
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Recently uploaded (20)

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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Developing Agile Java Applications using Spring tools

  • 1. Developing Java Applications in Agile way using SpringSource Tool Suite (STS) 2.3.2, Maven, Spring tc server Presented by : Sathish Chittibabu Date : May 11th2010 Event : Solstice Consultants Round table discussion
  • 2. Agenda 2/19 Spring Framework (Introduction) Spring 3.0 – What’s new ? (if needed) SpringSource Tool Suite (STS) 2.3.2 Spring tcServer Maven Quick example So what’s Agile here ?
  • 3. No Spring Allergy !!! 3/19
  • 4. Spring Framework Open source framework for Java development ( Spring Core, Spring MVC, Spring JDBC, Web Services etc.,) Lightweight, non-invasive container Dependency Injection or Inversion of Controller Assemble complex system from loosely coupled POJOs Reusable business and data access components not tied to J2EE services. Spring managed applications can run in any J2EE environment, as standalone apps, test environments Lean Software Movement 4/19
  • 5. Spring 3.0 – What’s new ? Java 5+ support Spring Expression Language REST Support Portlet 2.0 Declarative model validation Early support for Java EE6 5/19
  • 6.
  • 7.
  • 10. Annotations in the beans (@ Components)
  • 11. Configuration classes (Spring Java Config Project)6/19
  • 12.
  • 13. Java configuration class instead of XML Configuration
  • 14. Everything in Java – stronger type checking
  • 15. Dependencies confined to one place. No additional annotations inside the app code
  • 16. Every method returns a spring managed bean@Bean @Primary @Lazy public DemoServicedemoService(){ DemoServiceImpl service = new DemoServiceImpl(); service.setDataSource(…); return service; } 7/19
  • 17.
  • 18. Making custom annotations (your own stereotypes) more powerful
  • 19. App code doesn’t depend on Spring Annotations instead uses Java Annotations@Service@Scope ("request") @Transactional(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService{} @MyService public class DemoService{ … } 8/19
  • 20.
  • 21. Similar to managed beans in JSF Expressions
  • 22. Implicit attributes to be exposed by default (e.g., systemProperties, systemEnviroment)
  • 23. Implicit web specific attributes are also available (e.g., contextParameters, contextAttributes, request, session)#{systemProperties.databaseName} #{myBean.myProperty} 9/19
  • 24.
  • 25. @PathVariable introduced – URI templates@Controller@RequestMapping("/hotels/{hotel}") --- optional public class HotelsController{ @RequestMapping-- matches /hotels/42 public void handleHotel(@PathVariable("hotel") String hotel) { //... } @RequestMapping("bookings/{booking}") -- matches /hotels/42/bookings/21 public void handleBooking(@PathVariable("hotel") String hotel, @PathVariableint booking){ // ... } } 10/19
  • 26.
  • 34. RestTemplate (very similar to jdbcTemplate)11/19
  • 35.
  • 36. JSR 303 – “Bean Validation” through annotation
  • 37. Validation in any layerpublic class DemoBean { @NotNull @Past private Date someDate; } 12/19
  • 38. SpringSource Tool Suite (STS) 2.3.2 Eclipse-powered Java Integrated development environment (IDE) for building spring-powered enterprise applications Includes tools for all of the latest Enterprise Java and Spring based technologies Supports application targeting local, virtual and cloud based servers In built support for SpringSourcedmServer and SpringSourcetcServer Also available as Eclipse plugin 13/19
  • 39. Spring tcServer Enterprise version of Apache Tomcat Spring and Apache Tomcat – KISSing cousins Lightweight App Server suited for usage in modern virtual or Cloud environments Small foot print, lean approach requires significantly less computing resources Available in Spring edition, Standard edition and Developer edition Developer edition is integrated with STS Spring insight – analytical and advanced diagnostic tool for real time insight into performance (metrics) and behavior of Spring applications 14/19
  • 40. Maven Project Management and comprehension tool to manage Builds, Documentation, Reporting, Dependencies, SCMs, Releases, Distribution Ant is procedural while Maven is Object Oriented Employs standard conventions and practices to accelerate development cycle Concept of Central Repository – share 3rd party and open source libraries across projects (intranet as well internet) Continuous Integration – automated build, release, tests etc., In words of Jason van Zyl "the intent of Maven is to make intra-project development highly manageable in the hopes of providing more time for cross-project development. You might call it cross-project pollination or the sharing of project development knowledge; this is what Maven attempts to encourage". 15/19
  • 41. Maven – Pom.xml POM (Project Object Model) – XML representation of maven project Declarative manifestation of “who” , “what” and “where”, while the build lifecycle is the “when” and “how” Maven solves Dependency Management issues “jarmageddon” and “jar Hell” thru common local repository from which to link projects correctly 16/19
  • 42. Maven- Standard Layout for Projects Java sources go under ${basedir}/src/main/java Web stuff go under ${basedir}/src/main/webapp Test sources go under ${basedir}/src/test/java Compiled classes go under ${basedir}/target/classes where ${basedir} represents the directory containing pom.xml Maven local repository –~/.m2/repository 17/19
  • 43. So What’s Agile here ? Don’t have to worry about build infrastructure – boiler plate Don’t have to scratch your head on the different version of libraries Don’t have to spend time on App server setup on your dev environment Can develop “Runtime Environment Agnostic” Java code Development is quick - Hot deployment on tcServer Develop lean software – easy to support & maintain And now you can actually concentrate on building application code 18/19
  • 44. Q & A 19/19