Added Lombok support and used constructor injection in services

This commit is contained in:
Rustam 2025-06-01 14:59:24 +05:30
parent 3a931080d4
commit 8c31ab8bef
7 changed files with 77 additions and 103 deletions

View file

@ -61,6 +61,13 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version> <!-- Use latest stable version -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View file

@ -21,6 +21,9 @@ 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
@ -30,19 +33,22 @@ import jakarta.persistence.MappedSuperclass;
* @author Juergen Hoeller
*/
@MappedSuperclass
@Data
@Getter
@Setter
public class BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
public Integer getId() {
return id;
}
// public Integer getId() {
// return id;
// }
public void setId(Integer id) {
this.id = id;
}
// public void setId(Integer id) {
// this.id = id;
// }
public boolean isNew() {
return this.id == null;

View file

@ -18,6 +18,10 @@ 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 <code>BaseEntity</code>. Used as
@ -28,23 +32,26 @@ import jakarta.validation.constraints.NotBlank;
* @author Wick Dynex
*/
@MappedSuperclass
@Setter
@Getter
@ToString
public class NamedEntity extends BaseEntity {
@Column(name = "name")
@NotBlank
private String name;
public String getName() {
return this.name;
}
// public String getName() {
// return this.name;
// }
public void setName(String name) {
this.name = name;
}
// public void setName(String name) {
// this.name = name;
// }
@Override
public String toString() {
return this.getName();
}
// @Override
// public String toString() {
// return this.getName();
// }
}

View file

@ -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,4 @@ 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;
}
}

View file

@ -31,6 +31,11 @@ import jakarta.persistence.OneToMany;
import jakarta.persistence.OrderBy;
import jakarta.persistence.Table;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import jakarta.validation.constraints.NotBlank;
/**
@ -45,6 +50,11 @@ import jakarta.validation.constraints.NotBlank;
*/
@Entity
@Table(name = "owners")
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Owner extends Person {
@Column(name = "address")
@ -65,34 +75,6 @@ public class Owner extends Person {
@OrderBy("name")
private final List<Pet> 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<Pet> getPets() {
return this.pets;
}
public void addPet(Pet pet) {
if (pet.isNew()) {
getPets().add(pet);
@ -143,17 +125,17 @@ public class Owner extends Person {
return null;
}
@Override
public String toString() {
return new ToStringCreator(this).append("id", this.getId())
.append("new", this.isNew())
.append("lastName", this.getLastName())
.append("firstName", this.getFirstName())
.append("address", this.address)
.append("city", this.city)
.append("telephone", this.telephone)
.toString();
}
// @Override
// public String toString() {
// return new ToStringCreator(this).append("id", this.getId())
// .append("new", this.isNew())
// .append("lastName", this.getLastName())
// .append("firstName", this.getFirstName())
// .append("address", this.address)
// .append("city", this.city)
// .append("telephone", this.telephone)
// .toString();
// }
/**
* Adds the given {@link Visit} to the {@link Pet} with the given identifier.

View file

@ -32,6 +32,11 @@ import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.OrderBy;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* Simple business object representing a pet.
@ -43,6 +48,10 @@ import jakarta.persistence.Table;
*/
@Entity
@Table(name = "pets")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Pet extends NamedEntity {
@Column(name = "birth_date")
@ -58,22 +67,6 @@ public class Pet extends NamedEntity {
@OrderBy("date ASC")
private final Set<Visit> 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<Visit> getVisits() {
return this.visits;
}

View file

@ -24,6 +24,10 @@ import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* Simple JavaBean domain object representing a visit.
@ -33,6 +37,9 @@ import jakarta.validation.constraints.NotBlank;
*/
@Entity
@Table(name = "visits")
@Getter
@Setter
@AllArgsConstructor
public class Visit extends BaseEntity {
@Column(name = "visit_date")
@ -49,20 +56,4 @@ 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;
}
}