diff --git a/pom.xml b/pom.xml
index 8576c22ba..9a9fe7fe6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,6 +57,10 @@
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..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,6 +21,8 @@ import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
+import lombok.Getter;
+import lombok.Setter;
/**
* Simple JavaBean domain object with an id property. Used as a base class for objects
@@ -30,19 +32,14 @@ import jakarta.persistence.MappedSuperclass;
* @author Juergen Hoeller
*/
@MappedSuperclass
+@Getter
+@Setter
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..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,6 +18,9 @@ package org.springframework.samples.petclinic.model;
import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
/**
* Simple JavaBean domain object adds a name property to BaseEntity
. Used as
@@ -28,23 +31,13 @@ import jakarta.validation.constraints.NotBlank;
* @author Wick Dynex
*/
@MappedSuperclass
+@Getter
+@Setter
+@ToString
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() {
- 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 7ee1f0397..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,6 +18,8 @@ package org.springframework.samples.petclinic.model;
import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
/**
* Simple JavaBean domain object representing an person.
@@ -25,6 +27,8 @@ import jakarta.validation.constraints.NotBlank;
* @author Ken Krebs
*/
@MappedSuperclass
+@Getter
+@Setter
public class Person extends BaseEntity {
@Column(name = "first_name")
@@ -35,20 +39,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..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,6 +34,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
/**
@@ -44,15 +46,14 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
* @author Wick Dynex
*/
@Controller
+@RequiredArgsConstructor
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..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,6 +32,8 @@ import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.OrderBy;
import jakarta.persistence.Table;
+import lombok.Getter;
+import lombok.Setter;
/**
* Simple business object representing a pet.
@@ -43,6 +45,8 @@ import jakarta.persistence.Table;
*/
@Entity
@Table(name = "pets")
+@Getter
+@Setter
public class Pet extends NamedEntity {
@Column(name = "birth_date")
@@ -58,21 +62,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/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/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..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,6 +28,8 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
/**
@@ -39,13 +41,11 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
* @author Wick Dynex
*/
@Controller
+@RequiredArgsConstructor
class VisitController {
private final OwnerRepository owners;
- public VisitController(OwnerRepository owners) {
- this.owners = owners;
- }
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
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) {
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