2. Agenda
What is Spring? Why use it?
What is Spring Boot? Why use it?
Side by side with traditional Spring
Spring Boot in Action
3. What is Spring? Why use it?
Premier Java inversion of control (IoC) /
dependency injection framework
Presents common design patterns as first class
objects
Robust community of developers
Responsive component owners
4. What is Spring Boot? Why use it?
Opinionated
It knows what you probably want your app
configuration to look like
Passive
It knows to get out of the way when it’s wrong
Accelerated time to market
Significantly less boilerplate code necessary
5. Side by side with Traditional Spring
Traditional Spring Spring Boot
Lines of Code Written 147 (34 actual app code) 53 (34 actual app code)
Compiled WAR Size 5202 KB 16539 KB
App Start Time ~ 4 sec ~ 7 sec
6. Side by side with Traditional Spring
Boilerplate code (Traditional Spring)
@Configuration
@ComponentScan
@Order(Ordered.HIGHEST_PRECEDENCE)
public class AppInitializer extends
AbstractDispatcherServletInitializer {
// 15 lines of code omitted
}
@Configuration
@Order(Ordered.HIGHEST_PRECEDENCE + 10)
public class SecurityInitializer extends
AbstractSecurityWebApplicationInitializer {
// 3 lines of code omitted
}
@Configuration
@EnableWebMvc
public class WebConfig {
// 10 lines of code omitted
}
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
// 34 lines of code omitted
}
7. @SpringBootApplication
public class SpringBootExampleApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringBootExampleApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootExampleApplication.class);
}
}
Side by side with Traditional Spring
Boilerplate code (Spring Boot)
8. Spring Boot in action
Code located at
https://github.com/jghiloni/cf-meetup-march2015