spring: usarlo conviene, ma usalo bene!
DESCRIPTION
Le tecniche di Inversion of Control (IoC), e in particolare quelle di Dependency Injection (DI), si sono rivelate nel corso di anni utilissime per scrivere applicazioni ben organizzate, manutenibili e testabili. Per questa ragione lo Spring Framework, alla cui base ci sono proprio tali tecniche, è diventato una presenza quasi obbligatoria nella maggior parte delle applicazioni. Come molte tecnologie, se usate bene hanno vantaggi innegabili. I problemi sorgono quando vengono usate senza alcun controllo da sviluppatori inesperti, che le usano senza alcuna consapevolezza, generando effetti totalmente dannosi all’applicazione e, soprattutto, al processo di sviluppo. In questa presentazione verrà innanzitutto introdotto lo Spring Framework, mostrandone le caratteristiche di base, e le utilissime capacità di integrazione di svariate tecnologie. Successivamente verranno mostrati esempi di cattivo e buon utilizzo, cercando di fornire delle linee guida che indirizzino anche i programmatori meno esperti verso la strada corretta.TRANSCRIPT
![Page 1: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/1.jpg)
Spring:usarlo conviene, ma usalo bene
Lucio Benfante
lucio benfante.com@
verona.javaday.it www.jugpadova.it
![Page 2: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/2.jpg)
Inversion Of Control (IoC)
Inversion of control, or IoC, is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming.
from wikipedia
![Page 3: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/3.jpg)
Dependencies are BAD
List drugs = new ArrayList();
![Page 4: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/4.jpg)
IoC and Dependency Injection (DI)
Inversion of Control
Constructor InjectionSetter injection
Dependency InjectionDependency Lookup
![Page 5: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/5.jpg)
Spring framework?
IoC container
![Page 6: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/6.jpg)
Inject your objects
beans< >
bean id=”person ” class=”com.myapp.Person”< 1 > property name=”firstName” value=”Lucio”/< > property name=”lastName” value=”Benfante”/< > property name=”bornIn” ref=”venice”/< > /bean< >
bean id=”venice” class=”com.myapp.City”< > constructor-arg value=”Venezia”/< > /bean< >
/beans< >
![Page 7: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/7.jpg)
XML is boring
![Page 8: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/8.jpg)
Spring in Parancoe demonstration(www.parancoe.org)
![Page 9: Spring: usarlo conviene, ma usalo bene!](https://reader036.vdocument.in/reader036/viewer/2022083003/55957f8b1a28abc7318b45a2/html5/thumbnails/9.jpg)
References
● http://www.objectmentor.com/resources/articles/dip.pdf
● http://martinfowler.com/articles/injection.html
● http://martinfowler.com/bliki/InversionOfControl.html
● www.springframework.org
● www.parancoe.org
●