Spring Boot quickstart

Jonas Hecht
Jonas HechtSenior IT Consultant bei codecentric AG at codecentric AG
Spring Boot
quickstart
…with a little bit of Apache CXF
Jonas Hecht
2
About me
Jonas Hecht,
Senior IT-Consultant
https://blog.codecentric.de/
author/jonas-hecht/
jonas.hecht@codecentric.de
@jonashackt
github.com/jonashackt
3
I know Spring.
But what´s that Spring Boot thingy?
4
https://spring.io/projects
5
http://projects.spring.io/spring-boot
https://github.com/spring-projects/spring-boot
http://start.spring.io/
https://spring.io/blog/2016/07/28/spring-
boot-1-4-released
Where to start?
6
Main design goals
7
Picture: https://flic.kr/p/nZxKRM
8
http://projects.spring.io/spring-boot/
“Spring Boot […] is designed
to get you up and running as
quickly as possible.”
9
Picture: https://flic.kr/p/aD4qRA
10
Spring Boot favors
convention over
configuration […].
http://projects.spring.io/spring-boot/
11
And the details?
12
Picture: https://flic.kr/p/qRbJHR
13
Picture: https://flic.kr/p/cGmP7A
14
Embedded Tomcat, Jetty…
Stand-alone
No need to deploy .war’s/.ear’s
15
$ java -jar cxf-boot-simple-0.0.1-SNAPSHOT.jar!
or!
$ mvn spring-boot:run!
Stand-alone, no deployment
16Picture: https://flic.kr/p/dwSu3Z
17
'starter' POMs to simplify
Maven configuration
18
! Batch, Messaging, Caching, Relational Databases, JPA,
NoSQL, whatever, Redis, Integration, Logging,
WebServices, Mail, Security, Webapps, REST,…
! official:
https://github.com/spring-projects/spring-boot/tree/
master/spring-boot-starters
! community:
https://github.com/spring-projects/spring-boot/tree/
master/spring-boot-starters#community-contributions
'starter' POMs
19Picture: https://flic.kr/p/8Fyhn9
20
Automatically configure
Spring whenever possible
21
import org.springframework.boot.autoconfigure.condition.*;
@Configuration annotated Classes:
@Conditional
@ConditionalOnBean(YourClassHere.class)
@ConditionalOnProperty(“your.property.here“)
@ConditionalOnResource
...
Automatic configuration
22Picture: https://flic.kr/p/6HgM6u
23
Production-ready features
Metrics, health checks,
externalized configuration…
24
25
No code generation
No XML configuration!
26
I want my own custom
Spring Boot Starter!
27
Howto:
https://blog.codecentric.de/en/2014/11/extending-spring-boot-five-
steps-writing-spring-boot-starter/
Examples:
https://github.com/spring-projects/spring-boot/tree/master/spring-
boot-starters#community-contributions
https://github.com/codecentric/spring-boot-starter-batch-web
https://github.com/codecentric/cxf-spring-boot-starter
Custom Spring Boot Starters
28
demo
29
Complete Howto:
https://blog.codecentric.de/
2016/02/spring-boot-apache-cxf/
à http://start.spring.io/
group: de.codecentric.webservice
artifact: simpleservice
Web & Devtools
Demo: web service with Apache CXF 1/4
CXF-Dependencies
<!-- Apache CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.7</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.7</version>
</dependency>
30
Demo: web service with Apache CXF 2/4
@Bean
public ServletRegistrationBean dispatcherServlet() {
return new ServletRegistrationBean(new CXFServlet(), "/soap-
api/*");
}
@Bean(name= Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
31
WSDL: https://github.com/jonashackt/weather-service-wsdl/
jaxws-maven-plugin config
see https://blog.codecentric.de/2016/02/spring-boot-apache-cxf/
http://cxf.apache.org/docs/jax-ws-configuration.html
Demo: web service with Apache CXF 3/4
32
@Bean
public WeatherService weatherService() {
return new WeatherServiceEndpoint();
}
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), weatherService());
endpoint.publish("/WeatherSoapService_1.0");
return endpoint;
}
Demo: web service with Apache CXF 4/4
33
Questions?
J
1 of 33

More Related Content

Similar to Spring Boot quickstart(20)

Install Concourse CI with BOSHInstall Concourse CI with BOSH
Install Concourse CI with BOSH
Toshiaki Maki2.3K views
Twitter BootstrapTwitter Bootstrap
Twitter Bootstrap
Techizzaa1.1K views
Twitter Bootstrap Comprehensive OverviewTwitter Bootstrap Comprehensive Overview
Twitter Bootstrap Comprehensive Overview
Benha University2.1K views
Techical Workflow for a StartupTechical Workflow for a Startup
Techical Workflow for a Startup
Sébastien Saunier8.3K views
Building a Spring Boot Application - Ask the Audience!Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!
🎤 Hanno Embregts 🎸917 views
CCSP 2012F 早點下班的工具 CCSP 2012F 早點下班的工具
CCSP 2012F 早點下班的工具
裕欽 林1.7K views
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
Mark Leusink42.9K views

Recently uploaded(20)

Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum120 views

Spring Boot quickstart