Hvad er den bedste måde at lære spring frameworket at kende på?

Tags:    java spring framework

Hej allesammen

Jeg står i den situation at jeg rigtigt gerne vil lære java's Spring Framework at kende, og benytte dette, specielt til web udvikling. Hvorfor vil jeg lære dette framework at kende? Jo dels er det fordi jeg ved at mange virksomheder efterspørger java udviklere med kendskab til dette framework, og dels er det fordi alle jeg har snakket med har fortalt mig at spring frameworket gør din applikation rigtig meget bedre, på mange områder.

Jeg har allerede anskaffet mig bogen Pro Spring 3, men må indrømme at jeg til tider godt kan finde bogen lidt svær at følge med i, som begynder til dette framework. Jeg har dog læst kapitlerne omkring IoC og Dependency Injection, og tror også at jeg har forstået dette nogenlunde.

Jeg ville altså høre om der var nogle af jer herinde der kunne anbefale mig nogle endnu bedre bøger eller ressourcer på nettet (tutorials, artikler mm.), som kunne få mig igang med at lære Spring frameworket at kende, specielt med fokus på spring frameworkets MVC del.

Desuden ville jeg også høre, hvis du havde erfaring med dette framework, om du evt. kunne prøve at forklare mig og andre interesserede netop hvorfor du bruger frameworket. Hvad er det at dette framework giver dig af fordele?

/Martin



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Jeg blev for en fire-fem år "udsat" for Spring da jeg skulle hjælpe nogen med en applikation, som de havde bygget med Spring. Det lykkedes da også, men jeg ønsker aldrig at arbejde med det igen. At debugge på det og finde ud af, hvordan ting fungerer er komplekst, da al koden benytter sig af factories, som bygger objekter ud fra en konfiguration.
Så man kan ikke følge koden én linje af gangen. Man er hele tiden nødt til at kigge i obskure konfigurationsfiler, for at få at vide hvilken klasse, som instansieres.

Når det er sagt, så har du ret i, at det er meget brugt og efterspurgt, så gå endelig videre. Hvis din bog ikke er god nok, så er udviklernes egne tutorials måske.

På springsource siden er der tonsvis af kom-i-gang artikler og tutorials: http://www.springsource.org/get-started
Også videopræsentationer.

Måske det kunne være et emne for din næste Java artikel her på udvikleren :-)



Havde aldrig hørt om det før jeg så et link til dette: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.html

Det gav mig bestemt heller ikke meget lyst til at lære det. Men jeg ønsker dig held og lykke med det :).



Indlæg senest redigeret d. 09.09.2012 02:10 af Bruger #14645
Spring er et fantastisk framework at arbejde i. Det kræver dog en god forståelse af de principper der ligger bag designet, samt de patterns det bygger på.

Hvis du er virkelig seriøs omkring dit ønske om at dygtiggøre dig indenfor frameworket, vil jeg anbefale dig at gå efter en certificering. Jeg arbejder som senior udvikler hos Nordea, og sidste år var jeg på kursus i Core Spring, og blev i februar i år certificeret (SpringSource Certified Spring Professional). Foruden kurses læste jeg Spring Recipes - A Problem-Solution Approach fra a-z, samt anvendte diverse mock-exams som er tilgængelige på nettet. Det er dog ofte mest relevant hvis du har et arbejde som vil betale for dit kursus og certificering (der følger en gratis voucher med til certificeringen hvis man tager kurses), da prisen er en smule pebret for de flestes privatøkonomi. Mener det ligger på 19.000,00 + moms.

Core Spring spænder over flere områder indenfor Spring, herunder også Spring MVC, som jeg arbejder med i høj grad i mit daglige arbejde. Der findes desuden et rent web-kursus - Certified Spring Web Application Developer - som fokuserer på Spring MVC og Spring Web Flow. I det omfang du gerne vil tage et kursus, vil jeg dog klart anbefale Core Spring, da dette er langt det mest omfattende og uddybende af kurserne.

Angående bøger, så er Pro Spring 3 sikkert ikke et dårligt valg. Jeg vil dog gerne anbefale dig Spring in Action fra Manning, som jeg personligt synes er rigtig god. Derudover er der Spring Recipies som nævnt ovenfor. Den er dog temmelig lang, og jeg vil klart anbefale Spring in Action frem for Spring Recipies.

Hvorfor bruge frameworket? Spring bygger på en samling af design patterns og best practices, som praktisk talt gør, at en masse arbejde bliver udført for dig "behind the scenes". At forstå Springs IoC container og anvendelse af dependency injection er helt afgørende for at forstå, hvordan frameworket gør automatisk test og løs kobling til en integreret del af din udvikling. Alle nævnte bøger fortæller uddybende herom, og størstedelen af Core Spring certificeringseksamen handler netop om IoC containeren.

Robert: Det undrer mig, at du har oplevet store problemer med at debugge en Spring applikation? Det må enten være grundet en MEGET gammel implementering, eller måske en uhensigsmæssig anvendelse af rammeværket (det at man anvender Spring gør bestemt ikke automatisk ens kode til god kode). Jeg kan dog forsikre jer om, at hvis man følger best practices, så er debugging, test og vedligeholdelse af en Spring application langt nemmere at tilgå (og ikke mindst langt mindre resourcekrævende), end en standard J2EE applikation. Desuden er Spring også kommet i en udgave målrettet mod udvikling af mobile apps til Android, hvilket jeg kun synes gør det endnu mere interessant.

Nå, det var en masse ævl :D laaang historie kort, jeg vil klart anbefale dig at kigge mere på Spring. Du har ret i, at det bliver mere og mere efterspurgt i Danmark, og bestemt også i resten af verden. Lad dig ikke skræmme af, at mange af tingene virker overvældende i starten. Forståelsen skal nok komme. Hvis du er heldig kan du muligvis komme i besidelse af træningsmaterialet fra kurset, evt. gennem en bekendt som har været på det. Det giver en rigtig god learn-by-doing indlæring af principperne, baseret på kodestumper som du løbende gør færdige i STS Eclipse, og efterfølgende tester via unit-test og integration-tests. En kanon måde at lære på (var det for mig ihvertfald).

Du er velkommen til at spørge løs, hvis du har flere spørgsmål. Skal nok se om jeg kan besvare dem. Og held og lykke med det, jeg er sikker på du nok skal synes om det når du først er kommet godt igang ;)

- Kristian



Indlæg senest redigeret d. 12.09.2012 14:02 af Bruger #12476
Jeg fandt dog lige denne side, som jeg syntes beskriver MVC modulet udemærket - http://blog.springsource.org/2011/01/04/green-beans-getting-started-with-spring-mvc/
Uden dog helt stadig at vide hvor meget mere dette modul kan tilbyde mig :)



Indlæg senest redigeret d. 11.09.2012 22:08 af Bruger #4487
@Kristian Lund
Det var som sagt for en fire-fem år siden, så måske noget har ændret sig.

Jeg kan følge denne kode:
Fold kodeboks ind/udKode 


Men sådan fungerede det ikke i det kode, som jeg arbejdede med. Objektet blev oprettet af en factory, som instantierede via reflection efter at have kigget i én eller anden konfigurationsfil. Argumenterne kom også fra konfigurationen, men muligvis ikke den samme fil. Og hvis der var argumenter i den fil, som jeg kiggede i, så kunne de være overrided af en anden fil.

Det fandt jeg aldrig rigtig ud af at hitte rundt i, så jeg har afskrevet Spring (indtil jeg bliver tvunget tilbage :-) )



Hej Robert

Du har tilsydenladende haft den tvivlsomme ære af at arbejde med noget kode som er uhensigtsmæssigt implementeret, og det er jo altid ærgeligt.

Dog er det gennemgående i Spring, at du registrerer dine beans i din application context, hvor du også registrerer deres properties og constructor argumenter. Dette er en del af Springs IoC container, og hvis disse paradigmer var helt ukendte for dig, kan jeg godt forstå du blev forvirret.. det gjorde jeg også første gang! Dog er det netop disse konfigurationer som tillader, at Springs IoC container kan manage dine beans og deres lifecycle. Men det kræver naturligvis, at man ved hvordan det fungerer :)



t