You are on page 1of 13

Spring Web Developer

Certification Study Guide
Completed: April, 2011
Page 1 of 13
Table of Contents
Overview.............................................................................................................................................. 4
Topics B !"#$ect Area........................................................................................................................ %
!pri&g 'e# Overview...................................................................................................................... %
!pri&g ()C *ispatc+er!ervlet Co&fig"ratio& ...............................................................................%
,a&dler(appi&g......................................................................................................................... -
,a&dlerAdapter........................................................................................................................... -
,a&dler.&terceptor...................................................................................................................... -
(essage!o"rce............................................................................................................................-
T+e mvc /amespace................................................................................................................... -
Co&ve&tio& over Co&fig"ratio&.................................................................................................. -
!pri&g ()C Programmi&g (odel 0sse&tials................................................................................. -
12e3"est(appi&g A&&otatio&................................................................................................... -
2e3"est ,a&dli&g (et+ods......................................................................................................... 4
12e3"estParam a&d 1Pat+)aria#le A&&otatio&s......................................................................4
1(odelAttri#"te A&&otatio&..................................................................................................... 4
!pri&g ()C )iews..........................................................................................................................4
)iew 2esolvers........................................................................................................................... 4
!pri&g ()C 5orm Processi&g.........................................................................................................6
1!essio&Attri#"tes A&&otatio&.................................................................................................. 6
1.&itBi&der A&&otatio& a&d *ata Bi&di&g C"stomi7atio&s.......................................................6
!pri&g 5orm Tag 8i#rar............................................................................................................ 6
5ormatters a&d )alidatio&........................................................................................................... 6
!pri&g 'e# 5low Overview.............................................................................................................9
!pri&g 'e# 5low Co&fig"ratio& ..................................................................................................... 9
5low ,a&dler (appi&g............................................................................................................... 9
5low ,a&dler Adapter................................................................................................................. 9
5low 2egistr.............................................................................................................................. 9
5low 2egistr.............................................................................................................................. 9
5low B"ilder !ervices................................................................................................................. 9
!pri&g 'e# 5low 0sse&tials ......................................................................................................... 10
!pri&g 'e# 5low Actio&s ............................................................................................................. 10
!ec"ri&g 'e# Applicatio&s 'it+ !pri&g !ec"rit ........................................................................ 11
Page 2 of 13
2eso"rces............................................................................................................................................12
Tools................................................................................................................................................... 13
Page 3 of 13
Overview
T+is g"ide is desig&ed to +elp o" prepare for t+e !pri&g 'e# *eveloper certificatio& e:am.
.f o";re co&sideri&g ta<i&g t+e e:am o";ve most li<el ta<e& t+e !pri&g!o"rce 4=da 2ic+ 'e#
trai&i&g. T+e certificatio& e:am is #ased o& t+is trai&i&g a&d t+e materials provided wit+ it are t+e
ideal so"rce to "se for preparatio&. Of co"rse as wit+ a& certificatio& t+e most val"a#le part,
#esides recog&itio&, is t+e lear&i&g process. ,e&ce we e&co"rage o" to ta<e time to e:perime&t
a&d follow o"r c"riosit w+e& 3"estio&s arise.
A 4=da co"rse co&tai&s a lot of material. To +elp o" foc"s o"r efforts a&d to <&ow w+e& o";re
read we;ve p"t toget+er t+is g"ide. T+e g"ide co&tai&s a list of topics a&d a list of f"rt+er reso"rces.
Topics are orga&i7ed # s"#$ect area w+ere eac+ topic co&tai&s a descriptio& of w+at o" s+o"ld
ma<e s"re o" <&ow.
T+e list of topics ca& #e "sed as a c+ec<=list. T+e trai&i&g materials is a poi&t of refere&ce a&d as as
a lear&i&g gro"&d. T+e list of reso"rces is w+ere o" ca& go f"rt+er for getti&g a&swers.
At the time of writing (May 2011), it is compulsory to attend the course prior to seating for the
exam. Our courses are updated on a regular asis. As a conse!uence, it you too" the course more
than six months ago, it is li"ely that a few topics where not co#ered in the course at that stage.
$t is therefore important to consider the following list of topics as your chec"%list and use any
resources listed here or that you "now of in order to prepare.
O&e possi#le wa to prepare is to do t+e followi&g for a give& trai&i&g mod"le:
1. 2eview t+e slides ma<i&g &otes of 3"estio&s
2. 'or< t+ro"g+ t+e la# >if t+ere is o&e?
3. 2eview t+e list of topics t+at matc+es to t+e mod"le # s"#$ect area
4. @se t+e la# to e:perime&t wit+ a&t+i&g o" &eed to spe&d more time o&
%. @se t+e provided list of reso"rces to loo< for f"rt+er a&swers
Of co"rse t+ere are ma& more was to orga&i7e o"r efforts. Ao" ca& pair "p wit+ someo&e else
pla&&i&g to ta<e t+e e:am or review all prese&tatio&s for a give& s"#$ect area #efore goi&g t+ro"g+
t+e t+eir la#s. Or ma#e o" +ave access to act"al applicatio&s o" ca& review to test o"r
<&owledge.
8ast #"t &ot least we;re alwas i&terested to +ear o"r feed#ac<. Ao" ca& se&d a& email to o"r
i&str"ctor a&dBor to trai&i&g1spri&gso"rce.com to let "s <&ow w+at o" t+o"g+t.
Page 4 of 13
Topics By Subject Area
T+e followi&g is a list of topics eac+ of w+ic+ is li<el to +ave 3"estio&s o& t+e e:am. T+e topics
are orga&i7ed # s"#$ect area.
Spring Web Overview
,ow !pri&g applicatio&s ca& #e loaded i& a !ervlet co&tai&er i&depe&de&t of w+at framewor< is
"sed >!pri&g ()C, !tr"ts, etc.? to develop t+e we# laer. ,ow does t+e applicatio& co&te:t get
i&itialised a&d from w+at files.
Basic facts a#o"t w+at !pri&g 'e# is, w+at prod"cts it co&sists of a&d +ow t+e relate to eac+ ot+er
i& terms of depe&de&cies. 5or e:ample !pri&g 5aces #"ilds o& !pri&g ()C, !pri&g 'e# 5low a&d
!pri&g Cava!cript.
&ip' An easy way to explore pro(ect dependencies is to start the )pring)ource &ool )uite, open a
ma#en pom.xml file for a pro(ect that uses )pring M*+, )pring ,e -low, )pring .a#a)cript,
and/or )pring -aces, and then clic" on the 01ependency 2raph3 (or the 01ependency
4ierarchy3) ta. Alternati#ely, rowse the )pring)ource repository
http'//www.springsource.com/repository (a we application that uses )pring M*+, )pring
.a#a)cript and 1o(o).
Spring MVC DispatcherServlet Configuration
,ow to co&fig"re t+e *ispatc+er!ervlet i& we#.:ml.
'+ere !pri&g=#ased, *ispatc+er!ervlet co&fig"ratio& is e:pected to #e # co&ve&tio& if a locatio&
is &ot provided.
'+at co&fig"ratio& ca& #e provided i& t+e !pri&g=#ased, *ispatc+er!ervet co&fig"ratio& a&d w+at
co&fig"ratio& is "sed # defa"lt.
Tip:
An important concept to "eep in mind is that the 1ispatcher)er#let loo"s for certain types of )pring
M*+ 0infrastructure3 eans in its )pring configuration (see m#c%essentials%2). 5xamples of such
types of eans include Message)ource, 4andlerMapping, *iew6esol#er, and others. &he exam will
test your understanding of the purpose of these )pring M*+ eans including what their purpose is,
how they are disco#ered (y ean class type or y ean id), what implementations are configured y
default, and so on.
7nderstanding )pring M*+ 0infrastructure3 eans as well learning how to explore what they
pro#ide is important step to learning )pring M*+. One way to learn is to open each type listed in
the sections elow, re#iew the class%le#el .a#a1oc, and explore a#ailale sutypes with the help of
the +trl8& shortcut.
Another exercise is to use +trl8)pace in )pring configuration files on ean property names in
order to see the list of a#ailale properties. &hese properties descrie how a gi#en infrastructure
type can e customi9ed.
Page % of 13
HandlerMapping
T+e p"rpose of t+e ,a&dler(appi&g strateg a&d t+e details of co&fig"ri&g it.
,ow t+e *efa"ltA&&otatio&,a&dler(appi&g a&d t+e Co&trollerClass/ame,a&dler(appi&g
impleme&tatio&s wor< a&d w+at t+e wo"ld do i& t+e case of specific i&comi&g re3"ests.
HandlerAdapter
T+e p"rpose of t+e ,a&dlerAdapter strateg a&d t+e details of co&fig"ri&g it.
HandlerInterceptor
T+e p"rpose of t+e ,a&dler.&terceptor strateg a&d t+e details of co&fig"ri&g it. '+at poi&ts i& t+e
lifeccle of t+e re3"est ca& #e i&tercepted, a&d w+at data is availa#le at eac+ poi&t.
MessageSource
T+e p"rpose of t+e (essage!o"rce strateg a&d t+e details of co&fig"ri&g it.
The vc !aespace
'+at is provides, w+at o" ca& co&fig"re. '+at do m#c'annotation%dri#en, m#c'interceptor, and
m#c'#iew%controller act"all doD
Convention over Configuration
,ow is !pri&g ()C co&fig"red # defa"lt. '+at co&ve&tio&s are availa#le to red"ce e:plicit
codi&g.
Spring MVC Programming Model Essentials
T+e #asics of t+e a&&otatio&=#ased programmi&g model i& !pri&g ()C, co&fig"ri&g 1Co&troller=
a&&otated classes, writi&g re3"est=+a&dli&g met+ods, a&d testi&g t+em.
"#e$uestMapping Annotation
T+e p"rpose of t+e a&&otatio&, w+at ca& #e a&&otated, a&d w+at optio&s >or attri#"tes? it provides.
,ow a @28 #rea<s dow& >we# applicatio& co&te:t, servlet &ame, pat+ i&fo? as well as w+ic+ part of
t+e @28 is "sed i& !pri&g ()C for re3"est mappi&g p"rposes.
Tip:
$n the exam you may e gi#en asic examples of 76:;s and annotated controller methods. <ou will
e expected to predict what methods will e in#o"ed. &he est way to experiment is to try it out. 7se
the course las, and chec" the )pring M*+ logging information on each re!uest=
Also examine the logs for output from 4andlerMapping eans. 4andlerMapping eans construct
76: mappings during startup and log that information. :og le#els for org.springframewor".we
must e set to 15>72.
Page - of 13
>elow are a couple of specific scenarios to experiment with.
)cenario 1' a 1efaultAnnotation4andlerMapping with one +ontroller and a single method
annotated with ?6e!uestMapping(0/foo3).
@uestions' ,hat 76:;s reach the method successfullyA 1oes adding an extension to the 76:
(.pdf, .xml) ma"e a differenceA 4ow aout more segments (/foo/ar)A Bassing anything (/other)A
&ry switching to ?6e!uestMapping(methodC6e!uestMethod.25&), does it still wor"A
)cenario 2' )imilar to scenario 1 ut in#ol#ing a +ontroller+lassDame4andlerMapping, a
controller (-oo+ontroller) and a method (ar) annotated with
?6e!uestMapping(methodC6e!uestMethod.25&)
#e$uest Handling Methods
,ow to write met+ods to +a&dle re3"ests, w+at a&&otatio&s ca& #e "sed, w+at t+e sig&at"re of t+e
met+od ca& #e s"c+ as i&p"t arg"me&t tpes a&d ret"r& tpes, w+at +appe&s if t+e met+od ret"r&s
void.
Tip:
$n addition to the annotations listed elow, the .a#a1oc of the ?6e!uestMapping annotation is a
good place to start for information on how input arguments and return #alues are interpreted on
?6e!uestMapping%annotated methods.
"#e$uest%ara and "%ath&ariable Annotations
T+e p"rpose of t+e a&&otatio&, w+at ca& #e a&&otated, w+at optio&s >or attri#"tes? it provides, ca& it
+a&dle optio&al parameters.
"ModelAttribute Annotation
T+e p"rpose of t+e a&&otatio&, w+at ca& #e a&&otated, w+at optio&s >or attri#"tes? it provides, w+at
is t+e defa"lt &ame give& to a model attri#"te o#$ect if t+e attri#"te &ame is left "&specified, a&d
w+at is t+e defa"lt attri#"te &ame give& to a model attri#"te o#$ect t+at is a& arra or a collectio&.
Spring MVC Views
T+e #asics of +ow views wor<, w+at t+e do, +ow t+e;re tpicall i&sta&tiated t+ro"g+ t+e process
of view resol"tio&, w+at is a logical view &ame, a&d w+at is t+e defa"lt logical view &ame selected
if a co&troller met+od leaves it "&specified >i.e. ret"r& val"e is void or &"ll?.
&iew #esolvers
T+e p"rpose of t+e )iew2esolver strateg, a&d t+e details of co&fig"ri&g it. !everal differe&t view=
resolvers are covered o& t+e co"rse.
,ow )iew2esolver c+ai&s wor< a&d +ow t+e ca& #e "sed to re&der m"ltiple co&te&t tpes E for
e:ample to re="se t+e same co&troller met+od to re&der ,T(8, P*5, or F(8 depe&di&g o& t+e
co&te&t tpe re3"ested # t+e clie&t.
Page 4 of 13
Spring MVC Form Processing
T+e #asics of wor<i&g wit+ forms s"c+ as +ow to co&fig"re data #i&di&g t+ro"g+ t+e
1(odelAttri#"te a&&otatio& a&d +ow data #i&di&g is "sed to pop"late t+e form o#$ect from re3"est
parameter val"es.
'+et+er data #i&di&g ca& #e "sed o& a PO!T or ca& it also #e do&e o& a G0T re3"est >co&sider
searc+ forms vs. forms "pdati&g data?.
,ow a re3"est +a&dli&g met+od ca& get access to t+e res"lts of data #i&di&g.
"SessionAttributes Annotation
T+e p"rpose of t+e !essio&Attri#"tes a&&otatio&, w+at ca& #e a&&otated, a&d w+at optio&s it
provides.
Tip: &he )essionAttriutes annotation pro#ides more than one ways to specify what o(ects should
e added to the 4&&B )ession. >e sure to chec" them. A good way to learn what options any )pring
annotation pro#ides is the .a#a1oc of the annotation.
T+e lifeccle of attri#"tes specified wit+ t+e 1!essio&Attri#"tes a&&otatio& E +ow lo&g t+e remai&
aro"&d, w+e& a&d +ow t+e ca& #e removed from t+e ,TTP !essio&.
,ow t+e !essio&Attri#"tes wor<s w+e& it;s "sed wit+ m"ltiple co&trollers E for e:ample is t+e data
stored glo#all to t+e ,TTP sessio& >e.g. "ser prefere&ces? or is it per=co&troller >e.g. acco"&t
editi&g?.
"InitBinder Annotation and 'ata Binding Custoi(ations
T+e p"rpose of t+e .&itBi&der a&&otatio&, w+at ca& #e a&&otated, a&d w+at optio&s it provides.
'+at c"stomi7atio&s ca& #e applied to t+e data #i&di&g mec+a&ism.
'+at error codes are ge&erated a"tomaticall d"ri&g data #i&di&g.
'+at error codes ca& #e "sed to c"stomi7e t+e errors ge&erated d"ri&g data #i&di&g.
Spring )or Tag *ibrary
T+e p"rpose a&d t+e val"e provided # t+e !pri&g form tags, a&d +ow to "se t+em.
)oratters and &alidation
T+e !pri&g 3 formatters, w+at ca& t+e do, w+ere are t+e "sed, +ow are t+e #etter t+a& t+e old
approac+. ,ow t+e i&teract wit+ t+e formatti&g a&&otatio&s.
,ow ca& t+e form model o#$ect #e validated. @&dersta&d +ow !pri&g forms leverage C!2 303 #ea&
validatio&. ,ow ca& error messages #e c"stomi7ed.
Page 6 of 13
Spring Web Flow Overview
'+at t+e motivatio& for t+e e:iste&ce of !pri&g 'e# 5low is a&d w+at are t+e commo& pro#lems it
solves.
A #asic "&dersta&di&g of +ow !pri&g 'e# 5low fits i&to !pri&g ()C.
Spring Web Flow Configuration
,ow !pri&g 'e# 5low is co&fig"red i&cl"di&g #ot+ !pri&g ()C a&d !pri&g 'e# 5low=specific
co&fig"ratio&.
Much li"e )pring M*+, )pring ,e -low pro#ides and expects a few infrastructure classes to e
configured as )pring eans. )ome of these infrastructure eans (e.g. -low4andlerMapping,
-low4andlerAdapter) are )pring M*+%specific, while others (e.g. -low5xecutor, -low6egistry,
and others) are specific to )pring ,e -low. :isted elow are the infrastructure types you should
re#iew and understand.
)low Handler Mapping
T+e p"rpose of t+e 5low,a&dler(appi&g strateg, t+e details of co&fig"ri&g it, a&d +ow it decides
w+et+er a& i&comi&g @28 matc+es to a& registered flows.
)low Handler Adapter
T+e p"rpose of t+e 5low,a&dlerAdapter strateg.
)low +,ecutor
T+e p"rpose of t+e 5low0:ec"tor a&d w+at co&fig"ratio& optio&s it provides.
)low #egistry
T+e p"rpose of t+e 5low2egistr, t+e details of +ow flows are registered a&d id;s assig&ed to t+em.
$n the exam you may e gi#en example -low6egistry configuration and incoming 76:;s. <ou;re
then expected to "now which 76: would match to a gi#en flow.
)pecifically consider the possiility for registering flows one y one and many at once using a
pattern. $n each case how does a flow get assigned an idA
)low Builder Services
T+e p"rpose of t+e 5lowB"ilder!ervices, w+at co&fig"ratio& optio&s it provides.
'+at t+e developme&t mode optio& is.
Page 9 of 13
Spring Web Flow Essentials
'+at a 'e# 5low view state is a&d w+at it represe&ts. '+at +appe&s w+e& a view state is reac+ed.
,ow a view state is resolved to a specific view s"c+ as a C!P page. '+at t+e attri#"tes of a view
state are.
'+at a tra&sitio&s i& 'e# 5low is. '+at triggers a tra&sitio&, w+at +appe&s w+e& a tra&sitio& is
triggered, a&d w+et+er a tra&sitio& ca& #e preve&ted o&ce it;s #ee& triggered. '+at glo#al tra&sitio&s
are.
,ow a #"tto& or a li&< o& a& ,T(8 page ca& #e "sed to raise a specific 'e# 5low eve&t.
'+at a 'e# 5low e&d state is. '+at +appe&s w+e& a& e&d state is reac+ed. '+at 'e# 5low does #
a defa"lt for a flow t+at +as e&ded. '+at is a good practice for w+at to do w+e& a flow e&ds.
,ow to write a 'e# 5low "&it test, w+at #ase class to e:te&d, w+at met+ods o";d e:pect to
override, a&d +ow to impleme&t test met+ods t+at &avigate t+ro"g+ t+e flow.
Spring Web Flow ctions
'+at scopes 'e# 5low provides a&d +ow lo&g varia#les i& eac+ scope live.
T+e 3 was to create a varia#le i& a flow defi&itio&, w+at t+e scope of t+e created varia#le is a&d
w+et+er it will #e depe&de&c i&$ected i& eac+ case.
,ow 'e# 5low resolves varia#les e&co"&tered i& t+e 08 e:pressio&s wit+i& a flow defi&itio&. 5or
e:ample will it searc+ t+e vario"s we# flow scopes or i& !pri&g co&fig"ratio&, a&d are t+ere
reserved wordsD Also importa&t is t+e order i& w+ic+ 'e# 5low goes to tr to resolve varia#les
e&co"&tered i& 08.
Tip: &o ma"e this easier, open an existing flow definition, and try to locate all the 5: expressions in
e#aluate elements. -or each expression determine what #ariales are used what their origin is E a
reser#ed "eyword, a scoped #ariale, a )pring eanA Also notice how when referencing scoped
#ariales you don;t ha#e to specify what scope they come from E flash, #iew, flow, etc. ,e -low
will automatically loo" in all scopes and try to locate the matching #ariale.
'+at t+e reserved 08 <ewords are i& 'e# 5low. ("c+ li<e t+e C!P 08 provides reserved
<ewords >pageCo&te:t, re3"est, respo&se?, so does 'e# 5low >flas+!cope, re3"est!cope,
c"rre&t0ve&t, a&d ot+ers?.
'+at t+e 4 differe&t tpes of 'e# 5low actio&s are. '+ere actio&s ca& #e em#edded i& a flow
defi&itio&. '+at actio&s are i&vo<ed w+e&. 5or e:ample w+at is t+e differe&ce #etwee& o&=re&der
actio&s a&d o&=e&tr actio&sD
,ow data #i&di&g a&d validatio& are e&a#led for a specific view state i& 'e# 5low. ,ow validatio&
a&d data #i&di&g ca& #e s"ppressed for a specific tra&sitio& >e.g. ca&cel eve&t?.
T+e p"rpose of t+e data #i&der eleme&t.
,ow to impleme&t validatio& logic E dedicated validator class or validate met+ods o& t+e model
attri#"te class. ,ow 'e# 5low fi&ds t+e validatio& logic. ,ow to i&vo<e validatio& logic for a
specific view state.
Page 10 of 13
Securing Web pplications With Spring Securit!
'+at we#.:ml co&fig"ratio& is re3"ired to e&a#le !pri&g !ec"rit a&d w+at t+e mec+a&ism !pri&g
!ec"rit "ses to protect we# applicatio&s.
'+at !pri&g !ec"rit related co&fig"ratio& is &eeded to sec"re a we# applicatio&.
,ow @28 patter&s s+o"ld #e co&fig"red.
Tip: Bay special attention to the order in which 76: patterns are pro#ided. 1oes it matter if you
put the more general (e.g. /accounts/F) or the more specific (e.g. /accounts/edit) pattern firstA
,ow met+od level sec"rit ca& #e added to a& applicatio&.
,ow a"t+e&ticatio& a&d a"t+ori7atio& relate to eac+ ot+er E for e:ample does t+e c+oice of
a"t+e&ticatio& affect a"t+ori7atio&D
'+at sec"rit optio&s are availa#le wit+i& !pri&g 'e# 5low. '+at eleme&ts ca& #e made sec"re.
Page 11 of 13
#esources
T+is sectio& co&tai&s a list of reso"rces relati&g for lear&i&g.
Spring Community Forums E loo< for e:isti&g disc"ssio&s or start o"r ow&, ta<e
adva&tage of o&e of t+e #est parts of !pri&g: its comm"&it.
SpringSource Blog E poi&t o"r favo"rite 2!! reader or come #ac< ever so ofte& for
detailed, 3"alit posts # !pri&g developers.
Reference Documentation E add #oo<mar<s i& o"r #rowser to t+e refere&ce
doc"me&tatio& pages for !pri&g >&amel t+e c+apter o& !pri&g 'e# ()C?, !pri&g 'e# 5low , a&d
!pri&g !ec"rit.
Spring Samples E a s"#versio& repositor wit+ pro$ects t+at ca& #e #"ilt wit+ mave& a&d
imported i&to !T!B0clipse. !ome of t+e samples +ave associated #log posts o& t+e !pri&g!o"rce
Blog listed a#ove. Ao" co"ld c+ec< # searc+i&g o& t+e <ewords: Hsample &ameI spri&gso"rce
#log.
Spring By Example E a&ot+er good repositor wit+ complete code samples a&d t+e a#ilit to
co&tri#"te o"r ow& samples.
Web Sites E it;s +ard to si&gle o"t i&divid"al we# sites. T+ere are so ma&. .f we +ad to &ame a
few t+e wo"ld i&cl"de .&fo3, *7o&e, Cava'orld, !pri&g ,"# amo&g ma& ot+ers.
Books E t+ere are ma& #oo<s. .t;s also +ard to fi&d o&es t+at are "p=to=date #eca"se it ta<es so
m"c+ effort to write t+em or <eep t+em "p=to=date, so c+ec< t+e date of t+e last editio& a&d t+e
versio& of t+e framewor< covered. P"#lis+ers li<e >e.g. Apress, (a&&i&g? provide earl access to
#oo< c+apters i& P*5 as t+e are #ei&g writte&.
Boo<s a#o"t !pri&g +ave c+apters o& !pri&g ()C at least. To &ame a few 3"alit !pri&g #oo<s:
JPro !pri&g 2.%J, J!pri&g .& Actio&J, J!pri&g .& PracticeJ.
Boo<s a#o"t !pri&g 'e# 5low are +arder to come # a&d o"r mileage wit+ t+em will var. JT+e
*efi&itive G"ide to 'e# 5lowJ is a #oo< wit+ good dept+ #"t is slig+tl o"t=of=date. T+ere are ot+er
#oo<s o" ca& fi&d. ,owever t+e o&e listed +ere is t+e most relia#le o&e i& terms of 3"alit.
Spring ro!ects "#R$ E most li<el &ot t+e first place to come to i& t+e #egi&&i&g #"t overall
a great lear&i&g reso"rce w+e& loo<i&g "p i&formatio& o& ver specific iss"es or &ew feat"res. Ao"
ca& read comme&ts, leave comme&ts, as well as vote. !ometimes disc"ssio&s o& t+e comm"&it
for"ms res"lt i& t+e creatio& of iss"es i& C.2A.
Page 12 of 13
Tools
SpringSource %ool Suite E !pri&g pro$ect templates, t"torials, #ea& diagrams, code
completio& a&d more. !ee t+e P*5 files "&der H2elated Co&te&tI for details o& availa#le feat"res.
!T! is "pdated ofte& a&d it;s free. .t also s"pports !pri&g 2oo a&d Grails.
Spring Roo E a rapid we# applicatio& developme&t tool #ased #ased o& most of t+e tec+&ologies
ta"g+t i& t+e co"rse a&d also a great tool for HrapidI lear&i&g.
Grails E a rapid we# applicatio& Groov K Cava developme&t platform t+at also "ses !pri&g 'e#
tec+&ologies. Grails +as a diverse set of pl"gi&s t+at ca& i&trod"ce o" to ma& we# tec+&ologies,
tec+&i3"es, a&d approac+es.
Spring #nsig&t E w+e& o" dow&load !T! 2.2.0 or +ig+er, it i&cl"des a versio& of tc !erver
#"&dled wit+ t+e !pri&g .&sig+t we#app. .t gives o" lig+tweig+t traci&g of o"r !pri&g applicatio&
i&cl"di&g li&<s to t+e so"rce code. A great tool for lear&i&g t+at ca& #e "sed wit+ e:isti&g
applicatio&s wit+ &o c+a&ges to t+e applicatio&.
Page 13 of 13