renren-fast开源项目解剖(一)

目录

renren-fast开源项目解剖(一)


renren-fast开源项目解剖(一)

目前仅分析后台JAVA源码,前端vue后面会有专门针对vue学习后得理解分析。

根据renren-fast基础文档启动项目,根据代码一步步跟踪。以下都是个人对程序得理解,有不对的地方留言讨论。

1.application.yml配置文件中得参数意义,可以去学习springboot了解。

2.其中里面的配置要同步到renren-fast-vue的/static/config/index.js中,修改:

  // api接口请求地址  端口和url对应的后端yml文件中配置的server port和context-path
  window.SITE_CONFIG['baseUrl'] = 'http://localhost:8880/url';

3.数据源的使用及mybatis框架集成(baomidou--mybatis-plus: mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com低代码组件库 http://aizuda.com

  数据源使用的com.alibaba.druid.pool.DruidDataSource;

  mybatis框架使用的苞米豆开源框架,减少了很多基础的DML操作。

4.登录机制使用的是shiro框架,简便,上手快。

公共工具类解析:

类:io.renren.common.aspect.SysLogAspect

    @Pointcut("@annotation(io.renren.common.annotation.SysLog)")
	public void logPointCut() { 
		
	}

	@Around("logPointCut()")
	public Object around(ProceedingJoinPoint point) throws Throwable {
		long beginTime = System.currentTimeMillis();
		//执行方法
		Object result = point.proceed();
		//执行时长(毫秒)
		long time = System.currentTimeMillis() - beginTime;

		//保存日志
		saveSysLog(point, time);

		return result;
	}

1.切点的触发条件是有自定义注解io.renren.common.annotation.SysLog时,进行切面操作。

2.在around方法里面记录开始时间,然后执行拦截方法,最后记录完成时间,保存日志。

此处是使用aop编程,方便快捷的为操作添加日志记录。

具体用到的地方可以参考Controller--io.renren.modules.sys.controller.SysMenuController里面有使用到@SysLog()。

类:io.renren.common.aspect.RedisAspect

    //是否开启redis缓存  true开启   false关闭
    @Value("${spring.redis.open: false}")
    private boolean open;

    @Around("execution(* io.renren.common.utils.RedisUtils.*(..))")
    public Object around(ProceedingJoinPoint point) throws Throwable {
        Object result = null;
        if(open){
            try{
                result = point.proceed();
            }catch (Exception e){
                logger.error("redis error", e);
                throw new RRException("Redis服务异常");
            }
        }
        return result;
    }

1.@Value中的open标志,获取的配置文件的值,就上面代码看,是默认的给的false,不开启redis。我们在配置文件yml里面也看得到写的是false,若开启,则会在启动项目的时候连接redis服务器。

2.这里也是用的aop进行的全局控制,使用到RedisUtils里的任意方法都会执行切面。

类:io.renren.common.utils.RedisUtils是针对redis操作的工具类。

类:io.renren.common.exception.RRException、io.renren.common.exception.RRExceptionHandler

异常类定义及Controller出现异常的处理。

类:io.renren.common.utils.Constant

常量定义,里面基本使用的枚举方式。

其他的公共类用法一目了然,大家可以简单的去看看,我就不一一介绍了。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值