资源简介
旅游管理系统包括以下几个模块:用户管理,角色管理,资源权限管理,访问日志,资源权限管理,产品管理,订单管理等六个模块
内有包含详细的功能描述文档,是一个比较系统的利用ssh框架,B\S模式开发的系统,比较完善的运用到了各功能间框架的整合
代码片段和文件信息
package com.itheima.ssm.aop;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import com.itheima.ssm.entity.SysLog;
import com.itheima.ssm.service.SysLogService;
@Component
@Aspect
public class LogAop {
@Autowired
private HttpServletRequest request;
@Autowired
private SysLogService sysLogService;
// 开始时间
private Date visitTime;
// 访问的类
private Class clazz;
// 访问的方法
private Method method;
// 前置通知
@Before(“execution(* com.itheima.ssm.controller.*.*(..))“)
public void doBefore(JoinPoint jp) throws NoSuchMethodException {
// 当前时间就是开始访问的时间
visitTime = new Date();
// 具体要访问的类
clazz = jp.getTarget().getClass();
// 获取访问的方法的名称
String methodName = jp.getSignature().getName();
// 获取访问的方法的参数
object[] args = jp.getArgs();
// 获取具体执行的方法的Method对象
if (args == null || args.length == 0) {
// 只能获取无参数的方法
method = clazz.getMethod(methodName);
} else {
Class[] classArgs = new Class[args.length];
for (int i = 0; i < args.length; i++) {
classArgs[i] = args[i].getClass();
}
clazz.getMethod(methodName classArgs);
}
}
// 后置通知
@After(“execution(* com.itheima.ssm.controller.*.*(..))“)
public void doAfter(JoinPoint jp) throws Exception {
// 获取访问的时长
long time = new Date().getTime() - visitTime.getTime();
String url = ““;
// 获取url
if (clazz != null && method != null && clazz != LogAop.class) {
// 1、获取类上的@RequestMapping(“/orders“)
RequestMapping classAnnotation = (RequestMapping) clazz.getAnnotation(RequestMapping.class);
if (classAnnotation != null) {
String[] classValue = classAnnotation.value();
// 2、获取方法上的@RequestMapping(xxx)
RequestMapping methodAnnotation = method.getAnnotation(RequestMapping.class);
if (methodAnnotation != null) {
String[] methodValue = methodAnnotation.value();
url = classValue[0] + methodValue[0];
// 获取访问的ip
String ip = request.getRemoteAddr();
// 获取当前操作的用户
SecurityContext context = SecurityContextHolder.getContext();
User user = (User) context.getAuthentication().getPrincipal();
String username = user.getUsername();
// 将日志相关信息封装到SysLog对象中
SysLog sysLog = new SysLog();
sysLog.setExecutionTime(time);
sysLog.setIp(ip);
sysLog.setMethod(“[类名]“+clazz.getName()+“[方法名]“+method.getName());
sysLog.setUrl(url);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-21 15:05 151413124_张顺_实训\
目录 0 2018-12-19 14:01 151413124_张顺_实训\code\
目录 0 2018-12-21 15:04 151413124_张顺_实训\code\web2_shixun\
文件 930 2018-12-07 11:28 151413124_张顺_实训\code\web2_shixun\.classpath
文件 8 2018-12-07 10:08 151413124_张顺_实训\code\web2_shixun\.gitignore
文件 1044 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.project
目录 0 2018-12-21 15:04 151413124_张顺_实训\code\web2_shixun\.settings\
文件 567 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.settings\.jsdtscope
文件 364 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.settings\org.eclipse.jdt.core.prefs
文件 637 2018-12-06 15:11 151413124_张顺_实训\code\web2_shixun\.settings\org.eclipse.wst.common.component
文件 345 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\.settings\org.eclipse.wst.jsdt.ui.superType.name
目录 0 2018-12-21 15:04 151413124_张顺_实训\code\web2_shixun\WebContent\
目录 0 2018-12-19 14:01 151413124_张顺_实训\code\web2_shixun\WebContent\me
文件 39 2018-12-04 18:40 151413124_张顺_实训\code\web2_shixun\WebContent\me
目录 0 2018-12-21 15:04 151413124_张顺_实训\code\web2_shixun\WebContent\WEB-INF\
文件 2426 2018-12-06 13:11 151413124_张顺_实训\code\web2_shixun\WebContent\WEB-INF\web.xm
目录 0 2018-12-21 15:04 151413124_张顺_实训\code\web2_shixun\WebContent\css\
文件 2425 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\css\st
文件 14259 2018-12-05 15:39 151413124_张顺_实训\code\web2_shixun\WebContent\failer.jsp
目录 0 2018-12-19 14:01 151413124_张顺_实训\code\web2_shixun\WebContent\img\
文件 2163 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\american-express.png
文件 8117 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\avatar.png
文件 13539 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\avatar04.png
文件 8262 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\avatar2.png
文件 9241 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\avatar3.png
文件 7578 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\avatar5.png
文件 123770 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\boxed-bg.jpg
文件 43677 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\boxed-bg.png
文件 221181 2018-12-04 18:54 151413124_张顺_实训\code\web2_shixun\WebContent\img\center.jpg
............此处省略1347个文件信息
- 上一篇:计算机组成与设计练习答案
- 下一篇:BOOT客户信息管理系统
相关资源
- Library图书馆图书管理系统
- springboot+rabbitmq项目demo(亲测可正常运
- jxbrowser 所有版本通用的破解包
- 2017年-传智播客-张志君老师-SpringBoo
- Blob.js+Export2Excel.js
- 机会路由源代码+仿真工具(SCORP)
- POI中文帮助文档附带api手册.zip
- 2018双十一阿里供应链服务平台讲座
- 原银在线信贷平台概要设计说明书v
- office_word_api 开发文档
- sun.misc.Unsafe源码
- netty的视频90集
- Drool最新 中文文档
- mybatis3-api.chm
- 蚂蚁课堂每特学院第二期,高清不加
- poi 动态修改docx窗体域内容,并存为
- reportdesign基于lodop的vue简单打印设计工
- SpringBoot +vue 框架项目.zip
- 基于Servlet下的验证码功能的实现
- jdk-11中文api修订版.CHM
- 招商银行信用卡中心2018春招IT笔试数
- 2019年独家Kubernetes K8S与Jenkins的CI CD高
- 新闻管理系统前台和后台
- SWT帮助文档
- 手机银行后台管理系统
- js特效40套
- 差旅管理系统
- 支付宝电脑网站支付
- 基于Eclipse编写的在线支付软件
- mavenRepository 仓库 依赖
评论
共有 条评论