Share
Embed
Spring Boot presentation
(Singapore Spring User Group, September 4th 2014)
Sample app on github is available here:
https://github.com/FabienLauf/spring-petclinic/
Michael Isvy
September 12, 2014
Transcript
12 slides
-
Spring Boot Fabien Lauf [email protected] http://sg.linkedin.com/in/fabienlauf Spring PetClinc: from plain
Vanilla Spring to Spring Boot -
The Former PetClinic Application • Spring sample application • Major
update in March 2013 • Spring MVC, Spring Data-JPA, Hibernate JPA, JDBC, Bootstrap, Dandelion, EhCache, logback -
Spring Boot • « Spring Boot is designed to get
you up and running as quickly as possible. » • Wraps several Spring projects, many third-party libraries and provides default configurations for each. • Groovy or Java. • Gradle, Maven or CLI. • 1.0.0.RC1 released in January 2014 • http://spring.io runs on Spring Boot! • Boot is not Roo! -
A Web application in a tweet? • Yes, with Groovy
+ Spring Boot CLI • Java and Maven: – pom.xml – Spring Boot starters dependencies – A Main class (your application is a jar!) • The pom.xml is your only configuration file! -
Getting started Pom.xml Configuration Properties PetClinic 80 lines 9 imported
artifacts 2 XML files 50 lines 0 file Spring Boot 25 lines 31 imported artifacts 2 Java classes 15 lines 0 file What are the minimum prerequisites for a “Hello world” in both cases? -
Persistence layer Pom.xml Configuration Properties DB initializer PetClinic 50 lines
2 XML files 75 lines 1 file 16 lines Set up by user Spring Boot 10 lines 3 JavaConfig classes 15 lines 1 file 3 lines Set up by Spring Boot Often seen as a bottleneck for projects configurations, does Spring Boot enhances persistence layer set up ? -
View and Controller layers • Limitations with JSP: – Not available
with Jetty – Works only if packaged as a war with embedded Tomcat – Dandelion throws exceptions with JSP and embedded Tomcat Pom.xml Configuration Properties PetClinic 60 lines 2 XML files 75 lines 0 file Spring Boot 25 lines 1 JavaConfig class 20 lines 1 file 2 lines -
Custom configurations • Custom Views – Declare your customs Views
with JavaConfig just as you do with your Controllers • Profile specific @Configuration classes – JavaConfig simpler than XML. • EhCache @Configuration class – But sometimes, JavaConfig can be non value added… • Logback – Still need an XML file but it’s included in Spring Boot’s parent starter. -
Final configurations Pom.xml Configuration Properties PetClinic 377 lines 77 imported
artifacts 9 XML files 350 lines 2 files 17 lines Spring Boot 117 lines 79 imported artifacts 6 JavaConfig classes 130 lines 1 file 10 lines -
Going further • Replace @Profile with Spring 4’s @Conditional or
the Spring Boot enhanced : @ConditionalOnMissingBean and @ConditionalOnBean. • Add RESTfull monitoring services provided by the actuator starter • Update the application to Java 8 in order to get full advantage of Spring 4. • Add Thymeleaf in order to have Dandelion working. • Let’s do a little startup time test. -
Why should I use Spring Boot? PROS • Simplifies the
use of Spring technologies. • Allows to experiment Spring by coding not by reading books. • Saves days of work at beginning of a new project. • Xml configuration still available. • Doesn’t add aspects and doesn’t generate code. • Production-ready. • Provides RESTfull monitoring services CONS • Not 0% configuration • Java Config can be tricky • Harder to TroubleShoot -
References • The “PetClinic on Spring Boot” sources: https://github.com/FabienLauf/spring-petclinic •
Reference guide: http://docs.spring.io/spring-boot/docs/1.1.5.RELEASE/reference/ htmlsingle/ • Spring Boot sources: https://github.com/spring-projects/spring-boot • Spring Boot samples: https://github.com/spring-projects/spring-boot/tree/v1.1.5.RELEASE/ spring-boot-samples/ • Nice tutorial: http://info.michael-simons.eu/2014/02/25/boot-your-application-with-