controller层是后端处理逻辑,manager层相当于接口调用吗

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开发手册泰山版里的描述去理解

img

img

model是实体、controller是控制层不是逻辑层,dao层是持久层,和数据库打交道,service是接口层,service的实现类才是业务逻辑层,manager是通用的业务层

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^