From f8a42d4f4730698c685763e32228caa1ebc29453 Mon Sep 17 00:00:00 2001 From: nishchay Date: Wed, 16 Jul 2025 12:55:38 +0530 Subject: [PATCH 1/2] Enhance: Added Lombok for model in place of geeters and setter Signed-off-by: nishchay --- pom.xml | 5 ++++ .../samples/petclinic/model/BaseEntity.java | 10 ++----- .../samples/petclinic/model/NamedEntity.java | 9 ++---- .../samples/petclinic/model/Person.java | 18 ++--------- .../samples/petclinic/owner/Owner.java | 30 +++---------------- .../petclinic/owner/OwnerController.java | 7 +++-- .../samples/petclinic/owner/Pet.java | 21 ++++--------- .../samples/petclinic/owner/Visit.java | 20 ++++--------- .../petclinic/owner/VisitController.java | 6 ++-- src/main/resources/application.properties | 1 - 10 files changed, 35 insertions(+), 92 deletions(-) diff --git a/pom.xml b/pom.xml index 8576c22ba..35e2b3228 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,11 @@ org.springframework.boot spring-boot-starter-web + + org.projectlombok + lombok + + org.springframework.boot spring-boot-starter-validation diff --git a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java index 6babed56d..0376e89a4 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java @@ -21,6 +21,8 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.MappedSuperclass; +import lombok.Data; +import lombok.Getter; /** * Simple JavaBean domain object with an id property. Used as a base class for objects @@ -30,19 +32,13 @@ import jakarta.persistence.MappedSuperclass; * @author Juergen Hoeller */ @MappedSuperclass +@Data public class BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } public boolean isNew() { return this.id == null; diff --git a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java index d4be03e9e..3ce4b0e3d 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java @@ -18,6 +18,7 @@ package org.springframework.samples.petclinic.model; import jakarta.persistence.Column; import jakarta.persistence.MappedSuperclass; import jakarta.validation.constraints.NotBlank; +import lombok.Data; /** * Simple JavaBean domain object adds a name property to BaseEntity. Used as @@ -28,19 +29,13 @@ import jakarta.validation.constraints.NotBlank; * @author Wick Dynex */ @MappedSuperclass +@Data public class NamedEntity extends BaseEntity { @Column(name = "name") @NotBlank private String name; - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } @Override public String toString() { diff --git a/src/main/java/org/springframework/samples/petclinic/model/Person.java b/src/main/java/org/springframework/samples/petclinic/model/Person.java index 7ee1f0397..3434beacb 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/Person.java +++ b/src/main/java/org/springframework/samples/petclinic/model/Person.java @@ -18,6 +18,7 @@ package org.springframework.samples.petclinic.model; import jakarta.persistence.Column; import jakarta.persistence.MappedSuperclass; import jakarta.validation.constraints.NotBlank; +import lombok.Data; /** * Simple JavaBean domain object representing an person. @@ -25,6 +26,7 @@ import jakarta.validation.constraints.NotBlank; * @author Ken Krebs */ @MappedSuperclass +@Data public class Person extends BaseEntity { @Column(name = "first_name") @@ -35,20 +37,6 @@ public class Person extends BaseEntity { @NotBlank private String lastName; - public String getFirstName() { - return this.firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return this.lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } + } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java index 63e3acc7a..838d8d6c0 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java @@ -31,6 +31,8 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.OrderBy; import jakarta.persistence.Table; import jakarta.validation.constraints.Pattern; +import lombok.Getter; +import lombok.Setter; import jakarta.validation.constraints.NotBlank; /** @@ -45,6 +47,8 @@ import jakarta.validation.constraints.NotBlank; */ @Entity @Table(name = "owners") +@Getter +@Setter public class Owner extends Person { @Column(name = "address") @@ -65,33 +69,7 @@ public class Owner extends Person { @OrderBy("name") private final List pets = new ArrayList<>(); - public String getAddress() { - return this.address; - } - public void setAddress(String address) { - this.address = address; - } - - public String getCity() { - return this.city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getTelephone() { - return this.telephone; - } - - public void setTelephone(String telephone) { - this.telephone = telephone; - } - - public List getPets() { - return this.pets; - } public void addPet(Pet pet) { if (pet.isNew()) { diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 1348457ee..3365e032a 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -34,6 +34,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import jakarta.validation.Valid; +import lombok.AllArgsConstructor; + import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** @@ -44,15 +46,14 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; * @author Wick Dynex */ @Controller +@AllArgsConstructor class OwnerController { private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; private final OwnerRepository owners; - public OwnerController(OwnerRepository owners) { - this.owners = owners; - } + @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java index 1945f9b67..d1c85222e 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java @@ -32,6 +32,9 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.OrderBy; import jakarta.persistence.Table; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * Simple business object representing a pet. @@ -43,6 +46,8 @@ import jakarta.persistence.Table; */ @Entity @Table(name = "pets") +@Getter +@Setter public class Pet extends NamedEntity { @Column(name = "birth_date") @@ -58,21 +63,7 @@ public class Pet extends NamedEntity { @OrderBy("date ASC") private final Set visits = new LinkedHashSet<>(); - public void setBirthDate(LocalDate birthDate) { - this.birthDate = birthDate; - } - - public LocalDate getBirthDate() { - return this.birthDate; - } - - public PetType getType() { - return this.type; - } - - public void setType(PetType type) { - this.type = type; - } + public Collection getVisits() { return this.visits; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Visit.java b/src/main/java/org/springframework/samples/petclinic/owner/Visit.java index 085cd2849..268aeefae 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Visit.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Visit.java @@ -24,6 +24,8 @@ import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; /** * Simple JavaBean domain object representing a visit. @@ -33,6 +35,8 @@ import jakarta.validation.constraints.NotBlank; */ @Entity @Table(name = "visits") +@Getter +@Setter public class Visit extends BaseEntity { @Column(name = "visit_date") @@ -49,20 +53,6 @@ public class Visit extends BaseEntity { this.date = LocalDate.now(); } - public LocalDate getDate() { - return this.date; - } - - public void setDate(LocalDate date) { - this.date = date; - } - - public String getDescription() { - return this.description; - } - - public void setDescription(String description) { - this.description = description; - } + } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java index 21c1823a5..6980b5c70 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import jakarta.validation.Valid; +import lombok.AllArgsConstructor; + import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** @@ -39,13 +41,11 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; * @author Wick Dynex */ @Controller +@AllArgsConstructor class VisitController { private final OwnerRepository owners; - public VisitController(OwnerRepository owners) { - this.owners = owners; - } @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6ed985654..29f44e095 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,7 +2,6 @@ database=h2 spring.sql.init.schema-locations=classpath*:db/${database}/schema.sql spring.sql.init.data-locations=classpath*:db/${database}/data.sql - # Web spring.thymeleaf.mode=HTML From 88bbe1b280a82d8eb107a283ec1f18ab20c7db70 Mon Sep 17 00:00:00 2001 From: nishchay Date: Thu, 17 Jul 2025 10:41:40 +0530 Subject: [PATCH 2/2] improved code using lombok --- pom.xml | 7 +++---- .../samples/petclinic/model/BaseEntity.java | 5 +++-- .../samples/petclinic/model/NamedEntity.java | 14 ++++++-------- .../samples/petclinic/model/Person.java | 6 ++++-- .../samples/petclinic/owner/OwnerController.java | 4 ++-- .../samples/petclinic/owner/Pet.java | 1 - .../samples/petclinic/owner/PetController.java | 8 +++----- .../samples/petclinic/owner/PetTypeFormatter.java | 7 ++++--- .../samples/petclinic/owner/VisitController.java | 4 ++-- .../samples/petclinic/vet/VetController.java | 6 +++--- 10 files changed, 30 insertions(+), 32 deletions(-) diff --git a/pom.xml b/pom.xml index 35e2b3228..9a9fe7fe6 100644 --- a/pom.xml +++ b/pom.xml @@ -58,10 +58,9 @@ spring-boot-starter-web - org.projectlombok - lombok - - + org.projectlombok + lombok + org.springframework.boot spring-boot-starter-validation diff --git a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java index 0376e89a4..7b0a35163 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java @@ -21,8 +21,8 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.MappedSuperclass; -import lombok.Data; import lombok.Getter; +import lombok.Setter; /** * Simple JavaBean domain object with an id property. Used as a base class for objects @@ -32,7 +32,8 @@ import lombok.Getter; * @author Juergen Hoeller */ @MappedSuperclass -@Data +@Getter +@Setter public class BaseEntity implements Serializable { @Id diff --git a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java index 3ce4b0e3d..f3ee4db59 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java @@ -18,7 +18,9 @@ package org.springframework.samples.petclinic.model; import jakarta.persistence.Column; import jakarta.persistence.MappedSuperclass; import jakarta.validation.constraints.NotBlank; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Simple JavaBean domain object adds a name property to BaseEntity. Used as @@ -29,17 +31,13 @@ import lombok.Data; * @author Wick Dynex */ @MappedSuperclass -@Data +@Getter +@Setter +@ToString public class NamedEntity extends BaseEntity { @Column(name = "name") @NotBlank private String name; - - @Override - public String toString() { - return this.getName(); - } - } diff --git a/src/main/java/org/springframework/samples/petclinic/model/Person.java b/src/main/java/org/springframework/samples/petclinic/model/Person.java index 3434beacb..ff0a1fd69 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/Person.java +++ b/src/main/java/org/springframework/samples/petclinic/model/Person.java @@ -18,7 +18,8 @@ package org.springframework.samples.petclinic.model; import jakarta.persistence.Column; import jakarta.persistence.MappedSuperclass; import jakarta.validation.constraints.NotBlank; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * Simple JavaBean domain object representing an person. @@ -26,7 +27,8 @@ import lombok.Data; * @author Ken Krebs */ @MappedSuperclass -@Data +@Getter +@Setter public class Person extends BaseEntity { @Column(name = "first_name") diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 3365e032a..35b9a9bee 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -34,7 +34,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import jakarta.validation.Valid; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @@ -46,7 +46,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; * @author Wick Dynex */ @Controller -@AllArgsConstructor +@RequiredArgsConstructor class OwnerController { private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java index d1c85222e..78611fcff 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java @@ -32,7 +32,6 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.OrderBy; import jakarta.persistence.Table; -import lombok.Data; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java index 56707d99f..a18a35ad6 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -32,6 +32,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; + import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** @@ -42,6 +44,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; */ @Controller @RequestMapping("/owners/{ownerId}") +@RequiredArgsConstructor class PetController { private static final String VIEWS_PETS_CREATE_OR_UPDATE_FORM = "pets/createOrUpdatePetForm"; @@ -50,11 +53,6 @@ class PetController { private final PetTypeRepository types; - public PetController(OwnerRepository owners, PetTypeRepository types) { - this.owners = owners; - this.types = types; - } - @ModelAttribute("types") public Collection populatePetTypes() { return this.types.findPetTypes(); diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java b/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java index 7ddc6e923..601685f0a 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java @@ -18,6 +18,8 @@ package org.springframework.samples.petclinic.owner; import org.springframework.format.Formatter; import org.springframework.stereotype.Component; +import lombok.RequiredArgsConstructor; + import java.text.ParseException; import java.util.Collection; import java.util.Locale; @@ -33,13 +35,12 @@ import java.util.Locale; * @author Michael Isvy */ @Component +@RequiredArgsConstructor public class PetTypeFormatter implements Formatter { private final PetTypeRepository types; - public PetTypeFormatter(PetTypeRepository types) { - this.types = types; - } + @Override public String print(PetType petType, Locale locale) { diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java index 6980b5c70..eba3cc9ee 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import jakarta.validation.Valid; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @@ -41,7 +41,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; * @author Wick Dynex */ @Controller -@AllArgsConstructor +@RequiredArgsConstructor class VisitController { private final OwnerRepository owners; diff --git a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java b/src/main/java/org/springframework/samples/petclinic/vet/VetController.java index 89ad9bc41..735e1b5aa 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/VetController.java @@ -26,6 +26,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import lombok.RequiredArgsConstructor; + /** * @author Juergen Hoeller * @author Mark Fisher @@ -33,13 +35,11 @@ import org.springframework.web.bind.annotation.ResponseBody; * @author Arjen Poutsma */ @Controller +@RequiredArgsConstructor class VetController { private final VetRepository vetRepository; - public VetController(VetRepository vetRepository) { - this.vetRepository = vetRepository; - } @GetMapping("/vets.html") public String showVetList(@RequestParam(defaultValue = "1") int page, Model model) {