springboot中MVC三层架构模式是指dao层、service层、controller层,model层和manager层相当于接口,是否有点冗余?controller层是后端处理逻辑,manager层相当于接口调用吗?
model层代码如下:
@TableName("rc_course")
@Data
public class CourseEntity {
public static final String ID = "course_id";
public static final String TEACHER_ID = "course_teacher_id";
public static final String NAME = "course_name";
public static final String GRADE = "course_grade";
public static final String TIME = "course_time";
public static final String LOCATION = "course_location";
public static final String CREDIT = "course_credit";
public static final String TYPE = "course_type";
@NotNull
@TableId(value = ID, type = IdType.AUTO)
private Integer id;
@NotNull(message = "必须选择授课教师")
@TableField(TEACHER_ID)
private Integer teacherId;
@NotBlank(message = "课程名不能为空")
@TableField(NAME)
private String name;
@NotNull
@Range(min = 1980, max = 2999, message = "年级范围必须在1980-2999之间")
@TableField(GRADE)
private Integer grade;
@Pattern(regexp = "[1-7]-[1-9]-[1-4]", message = "课程最长时间为4节")
@TableField(TIME)
private String time;
@NotBlank(message = "上课地点不能为空")
@TableField(LOCATION)
private String location;
@NotNull
@Range(min = 1, max = 20, message = "学分必须在1-20之间")
@TableField(CREDIT)
private Integer credit;
}
manager层代码如下:
@Component("student_CourseManager")
public class CourseManager extends BaseManager {
private final StudentCourseDAO studentCourseDAO;
private final CourseDAO courseDAO;
public CourseManager(StudentCourseDAO studentCourseDAO, CourseDAO courseDAO) {
this.studentCourseDAO = studentCourseDAO;
this.courseDAO = courseDAO;
}
public StudentCourseEntity getStudentCourseById(Integer studentCourseId) {
return studentCourseDAO.get(studentCourseId);
}
@Transactional
public int deleteStudentCourse(StudentCourseEntity studentCourseEntity) {
courseDAO.decreaseSelectedCount(studentCourseEntity.getCourseId());
return studentCourseDAO.delete(studentCourseEntity.getId());
}
}
model是实体,manager是通用业务层,可以供多个Service复用
这个可以参考阿里巴巴 JAVA开发手册泰山版里的描述去理解
model是实体、controller是控制层不是逻辑层,dao层是持久层,和数据库打交道,service是接口层,service的实现类才是业务逻辑层,manager是通用的业务层
不知道你这个问题是否已经解决, 如果还没有解决的话: