From 7c3de7d29bd69234c9859de2d9bd41193f07e623 Mon Sep 17 00:00:00 2001 From: Vinay Mandge <59912201+vinayM165@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:48:22 +0530 Subject: [PATCH] Improve Logging and Exception Handling Enhanced logging for better visibility and added advanced checks to strengthen exceptional handling. Improves application reliability. --- .../Controller/MainController.java | 43 ++++++++++++----- .../Service/EmployeeService.java | 48 ++++++++++++------- .../Service/EmployeeServiceInterface.java | 9 ++-- 3 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/prashant/springbootcrud/Controller/MainController.java b/src/main/java/com/prashant/springbootcrud/Controller/MainController.java index fe850aa..821209f 100644 --- a/src/main/java/com/prashant/springbootcrud/Controller/MainController.java +++ b/src/main/java/com/prashant/springbootcrud/Controller/MainController.java @@ -4,6 +4,8 @@ import javax.sound.midi.ControllerEventListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -24,36 +26,53 @@ @RequestMapping("/rest") public class MainController { + + public static final Logger log= LoggerFactory.getLogger("Controller logs"); + @Autowired EmployeeServiceInterface employeeServiceInterface; @GetMapping("/getAllEmployee") - public List getAllEmployee() { - System.out.println("Inside Employee Repository"); - return employeeServiceInterface.getAllEmployee(); + public ResponseEntity> getAllEmployee() { + try { + log.info("Inside Employee Repository"); + return employeeServiceInterface.getAllEmployee(); + }catch (Exception e){ + log.error(e.getMessage()); + e.printStackTrace(); + return ResponseEntity.badRequest().build(); + } } @PostMapping("/create") public ResponseEntity createEmployee(@RequestBody Employee employee) { try { - Employee empCreated = employeeServiceInterface.createEmployee(employee); - return new ResponseEntity(empCreated, HttpStatus.CREATED); + return ResponseEntity.ok(employeeServiceInterface.createEmployee(employee)); } catch (BusinessException e) { ControllerException ce = new ControllerException(e.getErrorCode(), e.getErrorMessage()); return new ResponseEntity(ce, HttpStatus.BAD_REQUEST); } - } - @PostMapping("/createMultiple") - public void createEmployeeList(@RequestBody List employeeList) { - - employeeServiceInterface.createEmployee(employeeList); + public ResponseEntity createEmployeeList(@RequestBody List employeeList) { + try { + return employeeServiceInterface.createEmployee(employeeList); + }catch (Exception e){ + log.error(e.getMessage()); + e.printStackTrace(); + return ResponseEntity.badRequest().build(); + } } @DeleteMapping("/deleteAll") - public void deleteEmployees() { - employeeServiceInterface.deleteEmployee(); + public ResponseEntity deleteEmployees() { + try { + return employeeServiceInterface.deleteEmployee(); + }catch (Exception e){ + log.error(e.getMessage()); + e.printStackTrace(); + return ResponseEntity.badRequest().build(); + } } } diff --git a/src/main/java/com/prashant/springbootcrud/Service/EmployeeService.java b/src/main/java/com/prashant/springbootcrud/Service/EmployeeService.java index 0a47c9b..29259ef 100644 --- a/src/main/java/com/prashant/springbootcrud/Service/EmployeeService.java +++ b/src/main/java/com/prashant/springbootcrud/Service/EmployeeService.java @@ -4,7 +4,10 @@ import org.hibernate.Session; import org.hibernate.SessionFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import com.prashant.springbootcrud.ExceptionHandeling.BusinessException; @@ -14,17 +17,17 @@ @Service public class EmployeeService implements EmployeeServiceInterface { - + public static final Logger log = LoggerFactory.getLogger("Service Logs"); @Autowired EmployeeRepository employeeRepository; @Override - public Employee createEmployee(Employee employee) { + public ResponseEntity createEmployee(Employee employee) { if (employee.getName().isEmpty() || employee.getName().length() == 0) { throw new BusinessException("600", "No name value provided for the emplyee Name!!"); } try { - return employeeRepository.save(employee); + return ResponseEntity.ok(employeeRepository.save(employee)); } catch (IllegalArgumentException e) { @@ -34,26 +37,37 @@ public Employee createEmployee(Employee employee) { } @Override - public void createEmployee(List employeeList) { - - SessionFactory sessionFactory = SessionFactoryHelper.getSessionFactory(); - Session session = sessionFactory.openSession(); - session.beginTransaction(); - - session.save(employeeList); - session.getTransaction().commit(); - session.close(); + public ResponseEntity createEmployee(List employeeList) { + try { + SessionFactory sessionFactory = SessionFactoryHelper.getSessionFactory(); + Session session = sessionFactory.openSession(); + session.beginTransaction(); + session.save(employeeList); + session.getTransaction().commit(); + session.close(); + return ResponseEntity.ok("Employee created Successfully!!!"); + }catch (Exception e){ + log.error(e.getMessage()); + e.printStackTrace(); + return ResponseEntity.badRequest().build(); + } } @Override - public void deleteEmployee() { - - employeeRepository.deleteAll(); + public ResponseEntity deleteEmployee() { + try { + employeeRepository.deleteAll(); + return ResponseEntity.ok("Employee Deleted Successfully!!!"); + }catch (Exception e){ + log.error(e.getMessage()); + e.printStackTrace(); + return ResponseEntity.badRequest().build(); + } } @Override - public List getAllEmployee() { - return employeeRepository.findAll(); + public ResponseEntity> getAllEmployee() { + return ResponseEntity.ok(employeeRepository.findAll()); } } diff --git a/src/main/java/com/prashant/springbootcrud/Service/EmployeeServiceInterface.java b/src/main/java/com/prashant/springbootcrud/Service/EmployeeServiceInterface.java index d4c4c1c..d78e794 100644 --- a/src/main/java/com/prashant/springbootcrud/Service/EmployeeServiceInterface.java +++ b/src/main/java/com/prashant/springbootcrud/Service/EmployeeServiceInterface.java @@ -3,15 +3,16 @@ import java.util.List; import com.prashant.springbootcrud.Model.Employee; +import org.springframework.http.ResponseEntity; public interface EmployeeServiceInterface { - public Employee createEmployee(Employee employee); + public ResponseEntity createEmployee(Employee employee); - public void createEmployee(List employeeList); + public ResponseEntity createEmployee(List employeeList); - public void deleteEmployee(); + public ResponseEntity deleteEmployee(); - public List getAllEmployee(); + public ResponseEntity> getAllEmployee(); }