spring boot quickstart

33
Spring Boot quickstart …with a little bit of Apache CXF Jonas Hecht

Upload: jonas-hecht

Post on 08-Apr-2017

140 views

Category:

Technology


5 download

TRANSCRIPT

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/ [email protected]

@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?

12Picture: https://flic.kr/p/qRbJHR

13Picture: 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