banking application using springboot
ssdf
✅ 1. Spring Web
-
Purpose: Enables building web applications, including REST APIs.
-
Included in:
spring-boot-starter-web
-
Provides:
-
Spring MVC (Model-View-Controller)
-
Embedded Tomcat (or Jetty/Undertow)
-
REST controllers with
@RestController
,@RequestMapping
, etc.
-
✅ 2. MySQL Driver
-
Purpose: Acts as a connector (JDBC driver) that allows Java applications to communicate with a MySQL database.
-
Maven Dependency:
mysql:mysql-connector-java
-
Without it, your app can't talk to MySQL.
✅ 3. Spring Data JPA
-
Purpose: Simplifies database interactions by abstracting JPA (Java Persistence API) using Spring features.
-
Included in:
spring-boot-starter-data-jpa
-
Provides:
-
Auto generation of SQL queries
-
Repository interfaces like
CrudRepository
,JpaRepository
-
Pagination, sorting, and custom queries
-
✅ 4. Lombok
-
Purpose: Reduces boilerplate code in Java using annotations.
-
Works during compile time
-
Common Annotations:
-
@Getter
,@Setter
-
@NoArgsConstructor
,@AllArgsConstructor
-
@Data
(all-in-one) -
@Builder
-
✅ Purpose of application.properties
in a Maven Spring Boot Project
The application.properties
file is a central configuration file used in Spring Boot to define application settings like:
-
Database configuration
-
Server settings
-
Logging levels
-
Custom app settings
-
Third-party service integrations
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
✅ Summary of spring.jpa.hibernate.ddl-auto=update
-
Purpose: Automatically updates the database schema to match your JPA entity classes.
-
Behavior: Adds new columns or tables as needed without deleting data.
-
Use Case: Speeds up development by syncing DB schema with code changes.
-
⚠ Not recommended for production – can cause unintended schema changes.
Annotation | Purpose |
---|---|
@Entity |
Maps class to DB table |
@Table(name="accounts") |
Sets custom table name |
@Id |
Marks primary key field |
@GeneratedValue(...) |
Auto-generates primary key |
@Column(name="...") |
Maps field to custom column name |
@Getter , @Setter |
Auto-generates getters and setters (Lombok) |
@NoArgsConstructor |
Adds no-arg constructor (Lombok) |
@AllArgsConstructor |
Adds all-args constructor (Lombok) |
Comments
Post a Comment