资源简介

旅游管理系统包括以下几个模块:用户管理,角色管理,资源权限管理,访问日志,资源权限管理,产品管理,订单管理等六个模块 内有包含详细的功能描述文档,是一个比较系统的利用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.xml
     文件          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\meta-INF\
     文件          39  2018-12-04 18:40  151413124_张顺_实训\code\web2_shixun\WebContent\meta-INF\MANIFEST.MF
     目录           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.xml
     目录           0  2018-12-21 15:04  151413124_张顺_实训\code\web2_shixun\WebContent\css\
     文件        2425  2018-12-04 18:54  151413124_张顺_实训\code\web2_shixun\WebContent\css\style.css
     文件       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个文件信息

评论

共有 条评论