SpringBoot Basics
SpringBoot Basics
Spring Boot Framework comes with a built-in mechanism for application configuration
using a file called application.properties.
The application.properties file allows us to run an application in a different
environment.
1. Core Properties
2. Cache Properties
3. Mail Properties
4. JSON Properties
5. Data Properties
6. Transaction Properties
8. Integration Properties
9. Web Properties
Spring Boot JPA is a Java specification for managing relational data in Java
applications. It allows us to access and persist data between Java object/ class
and relational database. JPA follows Object-Relation Mapping (ORM). It is a set
of interfaces. It also provides a runtime EntityManager API for processing
queries and transactions on the objects against the database. It uses a
platform-independent object-oriented query language JPQL (Java Persistent
Query Language).
○ Object-Relational metadata
JPA is simpler, cleaner, and less labor-intensive than JDBC, SQL, and hand-written
mapping. JPA is suitable for non-performance oriented complex applications. The
main advantage of JPA over JDBC is that, in JPA, data is represented by objects and
classes while in JDBC data is represented by tables and records. It uses POJO to
represent persistent data that simplifies database programming. There are some other
advantages of JPA.
JPA is an open-source API. There is various enterprises vendor such as Eclipse,
RedHat, Oracle, etc. that provides new products by adding the JPA in them. There are
some popular JPA implementations frameworks such as Hibernate, EclipseLink,
DataNucleus, etc. It is also known as Object-Relation Mapping (ORM) tool.
In ORM, the mapping of Java objects to database tables, and vice-versa is called
Object-Relational Mapping. The ORM mapping works as a bridge between a relational
database (tables and records) and Java application (classes and objects).
○ JPA allows us to save and load Java objects and graphs without any DML
language at all.
JPA Features
JPA Architecture
JPA is a source to store business entities as relational entities. It shows how to define
a POJO as an entity and how to manage entities with relation.
The following figure describes the class-level architecture of JPA that describes the
core classes and interfaces of JPA that is defined in the javax persistence package.
The JPA architecture contains the following units:
○ Entity: The entities are the persistence objects stores as a record in the
database.
The classes and interfaces that we have discussed above maintain a relationship. The
following figure shows the relationship between classes and interfaces.
○ The relationship between EntityManager and EntiyTransaction is one-to-one.
There is an EntityTransaction instance for each EntityManager operation.
JPA Implementations
In ORM, the mapping of Java objects to database tables, and vice-versa is called
Object-Relational Mapping. The ORM mapping works as a bridge between a relational
database (tables and records) and Java application (classes and objects).
In the following figure, the ORM layer is an adapter layer. It adapts the language of
object graphs to the language of SQL and relation tables.
The ORM layer exists between the application and the database. It converts the Java
classes and objects so that they can be stored and managed in a relational database.
By default, the name that persists become the name of the table, and fields become
columns. Once an application sets-up, each table row corresponds to an object.
In 2019, JPA renamed to Jakarta Persistence. The latest version of JPA is 2.2. It
supports the following features:
JPA: JPA is a Java specification that is used to access, manage, and persist data
between Java object and relational database. It is a standard approach for ORM.
Hibernate: It is a lightweight, open-source ORM tool that is used to store Java objects in
the relational database system. It is a provider of JPA. It follows a common approach
provided by JPA.
MVC
A Spring MVC is a Java framework which is used to build web applications. It follows
the Model-View-Controller design pattern. It implements all the basic features of a core
spring framework like Inversion of Control, Dependency Injection.
○ Model - A model contains the data of the application. A data can be a single
object or a collection of objects.
○ Front Controller - In Spring Web MVC, the DispatcherServlet class works as the
front controller. It is responsible to manage the flow of the Spring MVC
application.