Day 36 (Java DUO).PDF.zjpqmg
Day 36 (Java DUO).PDF.zjpqmg
Advantages:
Simplifies RESTful API development with built-in support for annotations like
@RestController.
Provides tools for HTTP method mapping, data handling, and error management.
Easy database integration using Spring Data JPA.
Controller Layer: Handles HTTP requests and directs them to appropriate services.
Service Layer: Contains business logic, acting as a bridge between the controller and
the repository.
Repository Layer: Manages database operations and data retrieval.
Folders:
src/main/java: Contains controllers, services, and other Java classes.
src/main/resources: Contains configuration files like application.properties.
Key Class
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Tutor Mentor | 2024
6
Creating a Controller
Purpose: Handles incoming HTTP requests and maps them to corresponding endpoints.
Example:
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductService service;
@GetMapping
public List<Product> getAllProducts() {
return service.getAllProducts();
} Tutor Mentor | 2024
7
@PostMapping
public Product addProduct(@RequestBody Product product) {
return service.saveProduct(product);
}
}
Role: Contains business logic and bridges the controller and repository.
Example:
@Service
public class ProductService {
@Autowired
private ProductRepository repository;
public List<Product> getAllProducts() {
return repository.findAll();
} public Product saveProduct(Product product) {
return repository.save(product); } }
Tutor Mentor | 2024
10
What is Spring Data JPA?
Definition: Spring Data JPA simplifies database interaction using the Java Persistence API.
Features:
Auto-implemented repositories.
Reduced boilerplate code.
File: application.properties
Example:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Endpoint: /api/products
Method: GET
Tool: Use Postman or cURL to test the API.
Endpoint: /api/products
Method: POST
Payload:
{
"name": "Laptop",
"price": 50000
}
Response: Returns the created product object.
THANK YOU
Ask Me Anything!