KEMBAR78
36 Repository Pattern - Exception Handling - Rest Template | PDF
0% found this document useful (0 votes)
23 views5 pages

36 Repository Pattern - Exception Handling - Rest Template

Repository pattern in java

Uploaded by

sbhobhitbscc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
23 views5 pages

36 Repository Pattern - Exception Handling - Rest Template

Repository pattern in java

Uploaded by

sbhobhitbscc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 5
Repository Pattern, Exception Handling, and RestTemplate in Spring Boot Repository Pattern The Repository Pattern is a design pattern that provides an abstraction over data storage mechanisms. It allows you to separate the data access logic from the business logic, making your application more modular and easier to test. Implementation In Spring Boot, the Repository Pattern is implemented using Spring Data JPA\/Here's a step-by-step guide to implementing the Repository Pattern, 1, Define the Entity eentity public class User { exd @Gener atedvalue( strategy, private Long 4d; Generation Type. IDENTITY) private String name; private String emaiy // Getters (and, setters 2. Create the Repository Interface import org .sprangframework data. jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository { J# Custom query methods can be defined here Optional findByEmail(String email); 3, Service Layer eService public class UserService { eAutowired private UserRepository userRepository; public User createUser(User user) { return userRepository.save(user) public Optional getUserById(Long id) { return userRepository.findayEd(id) ; public Optaonal getUserByémail(String email) { return userRepository.findiyEmail (email) public void deleteUser(Long 4d) { userRepository.delevebyid(id) ; 4. Controller Layer @RestController @RequestNapping(" /users”) public class UserController { Autowired private UserService userSerVice; ePostNapping public ResponseEntity createUser(@RequestBody User user) { User ¢reteduser = userService.createUser(user) ; return new ResponseEntity<>(createdUser, HttpStatus .CREATED) ; @GetMapping("/{id}") public Responsaéntity gotUserById(ePathVariable Long id) { Optional user = userService .getUser8yId(i¢) ; return user.map(ResponseEntity: :ok) .orElseGet(() -> new ResponseEntity< @Delet Mapping ( */{id}") public ResponseEntity deleteUser(@PathVariable Long id) ( userService.deleteUser(id) ; return new ResponseEntity<>(HttpStatus.NO_CONTENT) ; Exception Handling Handling exceptions properly is crucial for building robust applications. Spring Boot pri several ways to handle exceptions. Global Exception Handling 1. Create Custom Exceptions public class UserNotFoundException extends RuntimeException { public UserNotFoundException(String message) ( ‘super (message) ; 2, Create a Global Exception Handi e@Controlleradvice public class GlobaLExceptionHandler ¢ @Excep tionHandler (UserNotFoundExéeption class) public ResponseEntity harid] ell serNotFoundExcep tion (UserNatFoundExcep return new ResponseEntity*?(ex.getMessage(), HttpStatus .NOT_FOUND) @Excep tionHandler (Exceptiion.cless) public ResponseEntitysString> handleGeneralexception(Exception ex) ( returg/ReWResponseEntity<>(ex.getMessage(), HttpStatus . INTERNAL_SERVER, 3. Throwing Custom Exceptions eService public class UserService { @Autowired private UserRepository userRepository ; public User createUser(User user) ( return userRepository.save(user); public Optional getUserById(Long id) { return userRepository. findById(4d) orElseThrow(() -> new UserNotFoundEx: public Optdonal getUserByémail(String email) { return userRepository.findayémail (email) ; public void deleteUser(Long id) { userRepository.deleteById(id) ; RestTemplate RestTemplate is a synchronous client to perform HTTP requests in Spring Boot. It simplifies communication with HTTP servers and enforces RESTful principles. Usage 1. Configure RestTemplate Bean @Confaguration public class AppConfig { Bean public RestTemplate restTewplate() return new RestTemplate() ? 2. Using RestTemplate eService public class ExternalService { eAutowired private RestTemplate restTemplate; public User getUserFronExternalService(Long id) { String url = “http ResponseEntity response = restTemplate.getForEntity(url, User.cla return response ..getBody(); //external-service.com/users/* + id; public User createUserInExternalService(User user) { String url = “https: //external-service.com/users" ; ResponseEntity response = restTemplate.postforEntity(url, user, U return response. get@ody(); return response .getBody(); Example of GET and POST Requests 1. GET Request public User getUser(Long id) { String url = “https: //api.example.com/users/* + id; return restTemplate.getFor0bject(url, User.class); 2. POST Request public User createUser(User user) { String url = “https: //api.example.com/user: return restTemplate.postFor0bject (url, usér)\USer.class) ; Conclusion Understanding and implementing the Repository Pattern, Exception Handling, and RestTemplate in Spring Boot can greatly enhance your pplication's modularity, robustness, and maintainability. By following these best practi¢es, you can build scalable and efficient Spring Boot applications.

You might also like