文档详情

JavaEE企业级项目开发(第3版)教学课件微课5-9:任务5.3考勤统计设计.pptx

发布:2025-03-07约4.58千字共12页下载文档
文本预览下载声明

主讲人:闾枫延迟符任务5.3考勤统计设计SpringAOP

任务分析考勤统计模块功能是根据输入部门名称、开始日期、结束日期统计该部门的考勤情况,同时记录考勤统计信息到日志表中。本任务重点是将日志业务类声明为切面类,在切面类的方法中声明切入点与切入时机。

考勤统计设计延迟符step01step02step03step04step05step066.视图层2.Service层4.Controller控制层1.Mapper层3.考勤统计日志切面类5.Spring配置文件

考勤统计设计延迟符//统计考勤信息publicListMapString,ObjectcountCheck(@Param(departName)StringdepartName,@Param(startDate)StringstartDate,@Param(endDate)StringendDate);!--统计考勤信息这里由三张表生成了一张视图tb_countcheck--selectid=countCheckresultType=java.util.Mapselect*fromtb_countcheckwheredepartName=#{departName}andcheckTimebetween#{startDate}and#{endDate}/select1.Mapper层接口:CheckMapper.java映射文件:CheckMapper.xml

考勤统计设计延迟符2.Service层//统计考勤信息publicListcountCheck(StringdepartName,StringstartDate,StringendDate);//统计考勤信息publicListcountCheck(StringdepartName,StringstartDate,StringendDate){returncheckMapper.countCheck(departName,startDate,endDate);}服务层接口:ICheckService.java服务层实现类:CheckService.java

考勤统计设计延迟符3.考勤统计日志切面类@Aspect@ComponentpublicclassCheckLogAspect{@AutowiredprivateICheckLogServicecheckLogService;privateHttpServletRequestrequest;publicHttpServletRequestgetRequest(){returnrequest;}publicvoidsetRequest(HttpServletRequestrequest){this.request=request;}//定义切入点表达式@Pointcut(execution(*cn.js.ccit.service.CheckService.countCheck(..)))publicvoidmypc1(){}切面类:CheckLogAspect.java//切入时@After(mypc1())publicvoidafterCountLog(JoinPointjoinPoint)throwsThrowable{HttpSessionsession=request.getSession();//记录统计考勤的时间Datedate=newDate();DateFormatdateFormat=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);StringcheckTime=+dateFormat.format(date);//设置用户的IdIntegeruserId=0;//获取查询的IP地址Stringip=(String)session.getAttribute(ip);//设置考勤统计日志对象CheckLogcheckLog=newCheckLog();checkLog.setCheckTime(checkTime);checkLog.setUserId(userId);check

显示全部
相似文档