O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Building Microservices with Spring Boot, Second Edition

Video Description

7+ Hours of Video Instruction

The term “microservices” has gained significant traction over the last few years. Describing a specific style of distributed software architecture, microservices are small, independently deployable units that work together to form a complete system. Microservices live on the web, live in the cloud, and work with all manner of data (SQL, NoSQL, In-Memory). They are production-ready services driven by ever-changing demands and scale.

Java developers looking to adopt microservices need to consider the practical aspects of application development. How can services be developed quickly? How can a broad range of technologies be supported? How can a consistent programming model be kept? For many companies, the answer is Spring Boot, Spring Cloud, and the wider Spring ecosystem.

Description

In this video training, Josh Long and Phil Webb demonstrate how and why Spring and Spring Boot offer the best way to build modern microservice systems. They look at the technologies and use-cases common to cloud-native microservice style applications as part of a larger framework, and then specifically address microservice implementation patterns.

About the Instructors

Josh Long is the Spring Developer Advocate at Pivotal. He is a lead author, or co-author, on six books on Spring for Apress and O’Reilly; a frequent speaker at conferences worldwide; a JavaOne rockstar; and also the instructor on the first two Spring LiveLessons videos. He is a contributor to various Spring projects (including Spring Boot) and an all-around Spring fan. You can follow Josh on Twitter: @starbuxman

Phil Webb is the current lead of Spring Boot and a core contributor to the Spring Framework. He has been working with open source for many years and regularly talks at conferences and Java User groups. When he’s not developing code, Phil is kept busy by his young son. Phil is fortunate enough to be employed by Pivotal to work full-time on Spring. You can follow Phil on Twitter: @phillip_webb

Skill Level

  • Intermediate

What You Will Learn

  • Understand the patterns typical of modern application architectures
  • Understand how Spring Boot ties together various parts of the Spring platform to make getting results a snap, on par with the agility you might otherwise expect from a Node.js or Ruby on Rails
  • Learn how to build microservices with Spring Cloud

Who Should Take This Course

  • Existing and new Spring users
  • Java developers working with: SQL, NoSQL, mobile, web applications, highly concurrent service backends, etc.

Course Requirements

  • Basic Java familiarity. The course uses Java 8, although Spring Boot and most Spring projects support Java 6.

Table of Contents

Introduction
Lesson 1: “Bootstrapping” (Spring Boot 101)
Lesson 2: Using “Twelve-Factor App” Style Configuration
Lesson 3: Reaching for The Clouds
Lesson 4: Working with Data
Lesson 5: Giving Your Microservice a REST
Lesson 6: Data Synchronization and Processing
Lesson 7: Creating Operations-Friendly Microservices
Lesson 8: Edge Services and Routing
Lesson 9: Operations at Scale
Lesson 10: Developing Web Applications
Lesson 11: Securing Microservices with Spring Security
Lesson 12: Testing Microservices
Lesson 13: Extending Spring Boot
Lesson 14: IDE and Tooling Support
Summary

About LiveLessons Video Training

LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home and Office Technologies, Business and Management, and more. View all LiveLessons on InformIT at: http://www.informit.com/livelessons.

Table of Contents

  1. Introduction
    1. Building Microservices with Spring Boot: Introduction 00:04:36
  2. Before You Begin (Understanding Spring Concepts)
    1. Understand Spring fundamentals 00:06:58
  3. Before You Begin (Upgrading Spring Boot Applications)
    1. Upgrade Spring Boot applications 00:02:05
    2. Deal with deprecations and warnings 00:02:20
    3. Apply Spring refinements 00:02:29
    4. Summary 00:00:28
  4. Lesson 1: “Bootstrapping” (Spring Boot 101)
    1. Learning objectives 00:00:41
    2. 1.1 Introduce Spring Boot 00:01:23
    3. 1.2 Write Groovy-based Spring CLI applications 00:03:36
    4. 1.3 Bootstrap with the Spring Initializr 00:05:38
    5. 1.4 Build with Maven 00:02:46
    6. 1.5 Build with Gradle 00:02:54
    7. 1.6 Work with starter POMs 00:00:41
    8. 1.7 Create runnable “fat” JARs 00:02:53
    9. 1.8 Understand auto-configuration 00:07:00
    10. Summary 00:00:28
  5. Lesson 2: Using “Twelve-Factor App” Style Configuration
    1. Learning objectives 00:00:44
    2. 2.1 Understand “Twelve-Factor App” configuration 00:00:55
    3. 2.2 Ask questions about an application’s environment 00:01:39
    4. 2.3 Read external configuration 00:02:23
    5. 2.4 Map properties to POJOs 00:09:39
    6. 2.5 Take it easy with relaxed binding 00:01:16
    7. 2.6 Support multiple environments using Spring profiles 00:03:07
    8. 2.7 Centralize configuration with the journaled, secure Spring Cloud Configuration Server 00:02:59
    9. 2.8 Refresh configuration without restarting your application 00:06:51
    10. Summary 00:00:43
  6. Lesson 3: Reaching for The Clouds
    1. Learning objectives 00:00:36
    2. 3.1 Embrace “The Cloud” 00:00:17
    3. 3.2 Compare IaaS and PaaS 00:01:14
    4. 3.3 Deploy your apps to Heroku 00:00:35
    5. 3.4 Deploy your apps to Cloud Foundry 00:03:51
    6. 3.5 Containerize your applications with Docker 00:03:57
    7. 3.6 Consume services in “The Cloud” 00:06:21
    8. 3.7 Optimize for “The Cloud” using Spring Session and Spring Cloud AWS 00:09:05
    9. Summary 00:00:31
  7. Lesson 4: Working with Data
    1. Learning objectives 00:00:40
    2. 4.1 Contextualize your microservice data 00:01:15
    3. 4.2 Understand Spring Data 00:01:51
    4. 4.3 Work with relational databases 00:10:06
    5. 4.4 Evolve your database using Flyway 00:03:30
    6. 4.5 Use Redis distributed data structures 00:05:52
    7. 4.6 Store data with MongoDB 00:04:39
    8. 4.7 Search data using Elasticsearch 00:03:25
    9. 4.8 Expose Spring Data repositories over REST 00:02:19
    10. Summary 00:00:22
  8. Lesson 5: Giving Your Microservice a REST
    1. Learning objectives 00:00:47
    2. 5.1 Understand REST 00:02:30
    3. 5.2 Understand status codes 00:03:39
    4. 5.3 Understand content negotiation 00:00:59
    5. 5.4 Understand HTTP Clients 00:02:46
    6. 5.5 Use hypermedia 00:12:33
    7. 5.6 Handle errors 00:06:05
    8. 5.7 Version your API 00:01:20
    9. 5.8 Use Differential Synchronization and JSON PATCH 00:03:01
    10. Summary 00:00:57
  9. Lesson 6: Data Synchronization and Processing
    1. Learning objectives 00:00:31
    2. 6.1 Batch process with Spring Batch 00:21:06
    3. 6.2 Integrate services with Spring Integration 00:15:43
    4. 6.3 Compose integration streams with Spring Cloud Stream 00:12:25
    5. 6.4 Orchestrate streams with Spring Cloud Dataflow (DSL, Shell) 00:10:13
    6. Summary 00:01:28
  10. Lesson 7: Creating Operations-Friendly Microservices
    1. Learning objectives 00:00:44
    2. 7.1 Understand the implications of agile methodologies on operations 00:00:49
    3. 7.2 Gain insight via logging 00:05:05
    4. 7.3 Introduce the Spring Boot Actuator 00:07:35
    5. 7.4 Monitor microservices 00:09:29
    6. 7.5 Diagnose errors 00:03:55
    7. 7.6 Measure anything and everything with metrics 00:08:36
    8. 7.7 Extend the Spring Boot Actuator 00:03:18
    9. Summary 00:00:30
  11. Lesson 8: Edge Services and Routing
    1. Learning objectives 00:00:25
    2. 8.1 Understand client side load balancing (Ribbon) and service registration (Eureka) 00:12:39
    3. 8.2 Build smart edge services (microproxies and api gateways) 00:31:57
    4. 8.3 Add resilience with circuit breakers 00:05:12
    5. Summary 00:01:09
  12. Lesson 9: Operations at Scale
    1. Learning objectives 00:00:38
    2. 9.1 Add distributed logging 00:11:24
    3. 9.2 Increase visibility with Hystrix Dashboard 00:09:46
    4. 9.3 Trace your distributed system with Zipkin 00:10:02
    5. 9.4 Use Application Performance Management (APM) 00:03:19
    6. Summary 00:01:10
  13. Lesson 10: Developing Web Applications
    1. Learning objectives 00:00:37
    2. 10.1 Understand web applications in the microservice world 00:01:06
    3. 10.2 Serve resources from a Spring Boot application 00:12:18
    4. 10.3 Use templating technologies such as Thymeleaf 00:04:33
    5. 10.4 Resolve and transform resources 00:08:30
    6. Summary 00:00:26
  14. Lesson 11: Securing Microservices with Spring Security
    1. Learning objectives 00:00:25
    2. 11.1 Understand security 00:01:01
    3. 11.2 Understand HTTP Basic 00:07:16
    4. 11.3 Understand x509 00:06:45
    5. 11.4 Understand OAuth 00:35:21
    6. Summary 00:00:43
  15. Lesson 12: Testing Microservices
    1. Learning objectives 00:00:35
    2. 12.1 Review the example test application 00:05:35
    3. 12.2 Test without Spring 00:05:28
    4. 12.3 Test with Spring 00:04:07
    5. 12.4 Mock beans 00:02:51
    6. 12.5 Test application slices 00:00:37
    7. 12.6 Use @JsonTest 00:04:13
    8. 12.7 Use @DataJpaTest 00:04:16
    9. 12.8 Use @RestClientTest 00:05:23
    10. 12.9 Use @WebMvcTest 00:05:58
    11. 12.10 Understand “slice” annotations 00:08:21
    12. 12.11 Use Wiremock 00:03:27
    13. Summary 00:00:19
  16. Lesson 13: Extending Spring Boot
    1. Learning objectives 00:00:29
    2. 13.1 Know when to extend Spring Boot 00:00:43
    3. 13.2 Understand curated dependencies 00:02:22
    4. 13.3 Write custom auto-configuration 00:07:46
    5. 13.4 Use ApplicationListeners 00:02:07
    6. 13.5 Use ApplicationContextInitializers 00:01:37
    7. 13.6 Write a custom failure analyzer 00:02:54
    8. Summary 00:00:27
  17. Lesson 14: IDE and Tooling Support
    1. Learning objectives 00:00:35
    2. 14.1 Understand tooling basics 00:00:29
    3. 14.2 Use Netbeans 00:02:45
    4. 14.3 Use Eclipse/STS 00:04:04
    5. 14.4 Use IntelliJ 00:03:07
    6. 14.5 Use DevTools to increase productivity 00:09:03
    7. 14.6 Understand property meta-data 00:04:01
    8. 14.7 Fork start.spring.io 00:04:33
    9. Summary 00:00:20
  18. Summary
    1. Building Microservices with Spring Boot: Summary 00:01:36