基本上model的部份就是原本的商業邏輯,將系統分割為MVC的重要原因就是可以將web與非web的應用程式共用商業邏輯 (model)。Model的部份通常包括Entity及資料庫存取。
Entity通常用來儲存資料,可以用在View跟Controller的參數傳遞,也可以用在Controller及資料存取物件 (Data Access Object, DAO)的參數傳遞。
package com.example.demo.entity;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import javax.validation.constraints.Size;public class Customer { private String name; private String address; private int weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; }}在Spring Validation中,也將驗證的規則放在Entity中。
package com.example.demo.entity;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import javax.validation.constraints.Size;public class Customer { @NotNull @Size(min=1) private String name; @NotNull @Size(min=1) private String address; @Min(0) private int weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; }}Data Access Object (DAO)是負責存取資料庫的內容,基本上內容跟上面的範例一樣,詳細內容請參考Spring JPA及Spring JDBC。
package com.example.demo.entity;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entitypublic class Customer { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String name; private String address; private int weight; public Long getId() { return id;}public void setId(Long id) { this.id = id;}public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; }}