using spring boot effectively in cloud foundry
TRANSCRIPT
TECHNOLOGY SOLUTIONS DELIVERED
Using Spring Boot Effectively in Cloud Foundry
Josh Ghiloni (@joshghiloni)
Senior Consultant, ECS Team
Agenda What is Spring? Why use it?
What is Spring Boot? Why use it?
Side by side with traditional Spring
Spring Boot in Action
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
What is Spring Boot? Why use it?Opinionated
It knows what you probably want your app configuration to look like
PassiveIt knows to get out of the way when it’s wrong
Accelerated time to marketSignificantly less boilerplate code necessary
Side by side with Traditional Spring
Traditional Spring Spring BootLines of Code Written 147 (34 actual app
code)53 (34 actual app code)
Compiled WAR Size 5202 KB 16539 KBApp Start Time ~ 4 sec ~ 7 sec
Side by side with Traditional SpringBoilerplate 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@EnableWebMvcpublic class WebConfig {// 10 lines of code omitted}@Configuration@EnableWebMvcSecuritypublic class WebSecurityConfig extends
WebSecurityConfigurerAdapter {// 34 lines of code omitted}
@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 SpringBoilerplate code (Spring Boot)
Spring Boot in action Code located at
https://github.com/jghiloni/cf-meetup-march2015