Successfully reported this slideshow.
Your SlideShare is downloading. ×

Spring Boot quickstart

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Spring Boot quickstart

  1. 1. Spring Boot quickstart …with a little bit of Apache CXF Jonas Hecht
  2. 2. 2 About me Jonas Hecht, Senior IT-Consultant https://blog.codecentric.de/ author/jonas-hecht/ jonas.hecht@codecentric.de @jonashackt github.com/jonashackt
  3. 3. 3 I know Spring. But what´s that Spring Boot thingy?
  4. 4. 4 https://spring.io/projects
  5. 5. 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. 6. 6 Main design goals
  7. 7. 7 Picture: https://flic.kr/p/nZxKRM
  8. 8. 8 http://projects.spring.io/spring-boot/ “Spring Boot […] is designed to get you up and running as quickly as possible.”
  9. 9. 9 Picture: https://flic.kr/p/aD4qRA
  10. 10. 10 Spring Boot favors convention over configuration […]. http://projects.spring.io/spring-boot/
  11. 11. 11 And the details?
  12. 12. 12 Picture: https://flic.kr/p/qRbJHR
  13. 13. 13 Picture: https://flic.kr/p/cGmP7A
  14. 14. 14 Embedded Tomcat, Jetty… Stand-alone No need to deploy .war’s/.ear’s
  15. 15. 15 $ java -jar cxf-boot-simple-0.0.1-SNAPSHOT.jar! or! $ mvn spring-boot:run! Stand-alone, no deployment
  16. 16. 16Picture: https://flic.kr/p/dwSu3Z
  17. 17. 17 'starter' POMs to simplify Maven configuration
  18. 18. 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
  19. 19. 19Picture: https://flic.kr/p/8Fyhn9
  20. 20. 20 Automatically configure Spring whenever possible
  21. 21. 21 import org.springframework.boot.autoconfigure.condition.*; @Configuration annotated Classes: @Conditional @ConditionalOnBean(YourClassHere.class) @ConditionalOnProperty(“your.property.here“) @ConditionalOnResource ... Automatic configuration
  22. 22. 22Picture: https://flic.kr/p/6HgM6u
  23. 23. 23 Production-ready features Metrics, health checks, externalized configuration…
  24. 24. 24
  25. 25. 25 No code generation No XML configuration!
  26. 26. 26 I want my own custom Spring Boot Starter!
  27. 27. 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. 28. 28 demo
  29. 29. 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. 30. 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. 31. 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. 32. 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. 33. 33 Questions? J

×