Learning Outcomes

Get a brief introduction of the features we’ll learn in this course.

Spring Boot is a Java-based open-source application framework that’s used to develop high-performance Java applications. This is a low-cost, secure, and flexible framework that minimizes most of the configurational work for the developer.

What we’ll learn in this course

Throughout this course, we’ll cover the following:

  • Web and Data access using Spring Boot.

  • Developer tools and test support provided in Spring Boot.

  • Operational features used in Spring Boot.

  • Docker container baking.

  • Bottleneck discovery with BlockHound.

  • Messaging in Spring Boot using APIs.

  • OAuth Security.

Course project

We’ll learn about Spring Boot, Spring Data, Testing, Messaging, RSocket, and Spring Security while creating an application for an e-commerce website. We’ll also learn to use the unit, container, and slice tests to ensure proper code functionality.

Below is the kind of application we’ll build in this course.

Click the “Run” button in the code widget below and check the “Output” tab for an example of the kind of application we’ll build in this course. You can also click the URL at the bottom of the code to view the application:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.5.6</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.greglturnquist</groupId>
	<artifactId>hackingspringboot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>hackingspringboot</name>
	<description>Demo project for Hacking with Spring Boot</description>
	<properties>
		<java.version>11</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webflux</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
  			<groupId>org.springframework.boot</groupId> 
  			<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
		</dependency>
		<dependency>
  			<groupId>de.flapdoodle.embed</groupId>
  			<artifactId>de.flapdoodle.embed.mongo</artifactId> 
		</dependency>
		<dependency>
  			<groupId>org.mongodb</groupId> 
  			<artifactId>mongodb-driver-sync</artifactId>
		</dependency>
		<dependency> 
			<groupId>org.springframework.boot</groupId> 
			<artifactId>spring-boot-devtools</artifactId> 
			<scope>runtime</scope> 
			<optional>true</optional>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.fizzed</groupId>
				<artifactId>fizzed-watcher-maven-plugin</artifactId>
				<version>1.0.6</version>
				<configuration>
					<watches>
						<watch>
							<directory>src/main</directory>
							<exclude>*.css</exclude>
							<exclude>*.js</exclude>
							<exclude>*.svg</exclude>
						</watch>
					</watches>
					<goals>
						<goal>compile</goal>
						<goal>process-classes</goal>
					</goals>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
Course application