
Let us begin the course and see the lessons and concepts that will be covered. We will also understand the advantages of taking this course. The GitHub link for this course is: https://github.com/TrainingByPackt/Spring-Boot-2-Fundamentals-eLearning
In this section, you will learn how to install and set up the Spring Boot environment. Let us install the following tools:
Install the JDK
Install IntelliJ
Install Maven 3.3+
GitHub link: https://github.com/TrainingByPackt/Spring-Boot-2-Fundamentals-eLearning
Let us start with Introduction lesson of the Spring Project and Framework. We shall also learn the different topics covered in the lesson along with the learning objectives.
In this topic, we will look at an overview of the Spring project itself and will be introduced to the basic building blocks of a Spring application. We are going to learn about the history of the Spring Framework, the key principles that Spring focuses on, and Dependency Injection and Inversion of Control. Lastly, we will examine the Spring ecosystem.
Let us now learn to create the first Spring Boot project in this topic by using the Spring project generator called Spring Initializr. Then, we will have a look at the generated code and start the application for the first time.
Let us explore the building blocks of Spring, how they are discovered by Spring, and how we can define them by hand, if necessary.
Finally, in this topic, we will recognize some of the boilerplate code in Java and define where Project Lombok helps us. This is a Java library that improves our Java by automatically plugging into our editor to build tools.
This video summarizes your learning of this lesson.
In this lesson, we will learn how to interact with Spring Beans and how to configure our Spring context. This is the foundation that every Spring application is built on. We shall also learn the different topics covered in the lesson along with the learning objectives.
Let us begin with the topic where we learn how you can inject Spring Beans into other Beans and how we can help Spring in cases where the injector is not uniquely identifiable.
We will then look at how to configure our applications with profiles and configuration files. Let us look at the video to learn the topic in further detail.
This video summarizes your learning of this lesson.
Let us now learn about different ways to test Spring applications. This lesson will focus on unit tests and how they are different than the other test types. We shall also learn the different topics covered in the lesson along with the learning objectives.
In this topic, we will learn how you can test the classes of your application as regular classes or with some Spring support for wiring dependencies.
Let us experience the simplicity and the speed of unit tests and the expressiveness and power of integration tests. Let us look at it in further detail.
This video summarizes your learning of this lesson.
Let us now learn how to build a web-based application in Spring that uses web pages to interact with the user. We shall also learn the different topics covered in the lesson along with the learning objectives.
Let us begin with the Model-View-Controller (MVC) pattern. It separates the main concerns of a web application into a model, a view, and a controller. Let us learn it in more detail.
We then learn to distinguish between a request- and a component-based MVC, which differs in how the framework handles incoming requests by either taking care of conversion, validation, and so let us further learn about it.
The developer can also handle the aspects of conversion and validation which requires a different code reusability. Let us understand it in this topic.
In this final topic, we will learn to implement our first Spring Web MVC application, to handle incoming requests and display a simple page output.
This video summarizes your learning of this lesson.
In this lesson, let us learn how to display information that has been made available from the controller as model attributes in a view. We shall also learn the different topics covered in the lesson along with the learning objectives.
In this section, we will learn about the Thymeleaf template engine and look at how to add the required dependency to our project and the basic syntax to write view templates.
Now, let us look at how Spring MVC handles the model and how to add attributes to it. Adding and accessing attributes is similar to a Java Map
In the last section, we will look at expressions and control statements that Thymeleaf uses to insert data from the model, iterate through lists, and conditionally display parts of the page.
This video summarizes your learning of this lesson.
In this lesson, we will learn about creating HTML forms for data acquisition. Once the data is acquired, we will then examine it. Lastly, we will examine the types of fields used to store the data. We shall also learn the different topics covered in the lesson along with the learning objectives.
HTML offers a construct called forms to allow the update or the input of data. Let’s understand it in more detail in this topic
Let us learn about adding validation messages in templates which includes setting a new default message for a validator, setting the message for a bean property, and providing translation for messages.
This topic will enable us to use the different types of input fields that are part of HTML with the Thymeleaf template engine. These values of the fields need to be bound to the attributes of the model to be processed by the controller. Let’s learn it in detail.
This video summarizes your learning of this lesson.
This lesson built straight on top of the concepts of the previous lessons, expanding your mastery of Spring MVC controllers to different responses. This is flexible enough to return any kind of data but is particularly suited to serve REST APIs. We shall also learn the different topics covered in the lesson along with the learning objectives.
REST APIs are the backbone of communication services. They are what modern distributed cloud-based applications work through. Let us understand and work towards it in more detail.
We will now look at REST Controllers in Spring and how to implement all the REST-guiding principles that we introduced previously. These advanced elements are not REST-specific and can sometimes become useful in a normal Spring MVC context, but they are indispensable for implementing REST controllers. Let us learn about it in detail.
Let us now learn about HATEOAS that is used to gives the server and client much more flexibility. We will further learn about extending an application with Spring HATEOAS.
Let us learn some exercise on the concepts of REST application, consuming different content types, and understanding the use and implementation of HATEOAS.
This video summarizes your learning of this lesson.
Let us look at many aspects of security, particularly those that you, as a software developer, should have on your agenda. We shall also learn the different topics covered in the lesson along with the learning objectives.
In this topic, we get introduced to the importance of securing the web application, understand the concept of RESTful APIs, the threats to web application, Insecure Deserialization, allowing access to resources, and finally, learn about Authentication and Authorization.
Let us move on to Spring Security and its defaults with understanding how to secure web browsing in a session with some exercises.
Let us now understand the concept of explicit configuration, security configuration entry point, adding hardcoded users with exercises on web security.
Let us get introduced to method-level security, roles allowed in it, security controllers, and learn about beyond access. We will also look at the security context, password encoders, real repositories, and cross-site request forgery.
Finally, we see some exercises on testing security aspects with a real user repository, and cross-origin resource sharing (CORS).
This video summarizes your learning of this lesson.
In this lesson, we will look at choosing a database management system. The choice of systems depends on various factors, such as visualization and reporting, security, scalability, and cost, to name a few. There are also various kinds of databases, and one of them is the relational database. We shall then learn the different topics covered in the lesson along with the learning objectives.
Let us first get a brief introduction of relational databases, the workhorses of the industry. Spring makes it easy to access those databases.
Now, let us learn about JDBC which the low-level access API to the database is. Let us understand about JDBC examples and other concepts in further detail.
Let us begin this section with the exercises on advances queries and returning structured data along with mapping rows and learning about CRUD operations.
Let us now look at Schema Updates, database migrations with Flyway, and utilizing Flyway.
Let us have a final look at into some advanced topics that are otherwise outside the scope of this course.
This video summarizes your learning of this lesson.
You will begin the Spring Boot 2 Fundamentals course by learning how to write and test simple code using the Spring Framework and then use this skill to learn advanced concepts, such as creating an HTML-based frontend with dynamic data and HTML forms. Then, you will create a simple, working, web interface to display blog posts, list all articles, and create and edit blog articles. You will learn to work with the REST API functionality that Spring Boot 2 offers and secure your blogging application. At the end of the course, you will learn how to persist your blog posts in a database, bringing everything together as a full web application with the complete functionality of a professional solution.
About the Author
Patrick Cornelißen is a software developer at heart, and the founder and CEO of orchit GmbH and kulinariWeb GmbH. He has written a number of applications in various languages and platforms and specializes in micro-service-based applications and the transition of monolithic applications to micro-services. He started using the Spring Framework in 2009 and has been a big fan ever since. After his family, software craftsmanship is one of his passions, which he pursues whenever he has some spare time. For this, he has organized example code retreats and open space conferences in the past. He likes learning about new things in the field of (agile) software development as much as he likes teaching.
Michael Piefel earned his fist salary in a programming job over 20 years ago – working in Pascal. After a number of years working with C and C++, he finally moved to Java in 2005. He has been using the Spring Framework since 2011 and Spring Boot since 2016. He used to be an instructor at the Humboldt University of Berlin (and still likes to share his knowledge) but is a full-time software engineer nowadays.
Alexander Sparkowsky has been a passionate software developer since the 1980s. He started building embedded systems during his college years, using Assembler and the C programming language. During his studies in the 1990s, he became very interested in the Java programming language. Since then, he has been developing full-stack applications in various languages and for multiple platforms, his main focus being on Java EE in the beginning. Eventually, he discovered the Spring Framework, and later Spring Boot, which became his favorite platform. Recently, he started using Kotlin, which makes developing modern micro-services even more fun. He enjoys learning and teaching new technology. When working in teams, he is a big fan of agile software development.
Shai Almog has hands-on, successful Software Engineer/Architect/Entrepreneur/Author with decades of verifiable success leading teams in delivering appropriate technology solutions full stack on mobile, server and desktop. He is a leader who takes initiative and can follow every single step of product development. Shai is a major open source contributor who led key global projects around the world in his 25 year professional career. Shai worked in most major industries from gaming to banking/insurance, development tools, cellular, networking, medical etc. He has managed and developed projects for widely distributed desktop and mobile applications as well as server applications for mission critical deployments. Shai designed and deployed complex cloud backends using a wide array of technologies/architectures from Spring Boot to App Engine to AWS and serverless/micro-service paradigms. Shai is a highly rated lecturer in conventions and instructor specializing in hands on mentoring.