2019独角兽企业重金招聘Python工程师标准>>>
关于日志,主要是利用aop来实现的。cn.demoframe.test.frame.service.LogAspect,这里在方法前做了个切面setReqReachTime,设置了一个请求达到时间。接下来还有个切面,是在controller方法调用返回的时候,做一些参数记录。pointcut 是这么写的* cn.demoframe..*.controller..*.*_log(..),早期是所有的添加修改删除分别对应一个切面方法,现在改为指定的方法(以_log结尾)才做日志,虽然方法命名看起来不是那么美观,也是跟以前需要事务的配置一样的思路,开发的人自己决定要不要记日志,开发的人决定要不要使用事务。这里面是很简陋的日志记录,对于系统登录行为记录了一下日志,其他的,比如是add开头,就是开发中添加的请求,mod是修改的请求,del是删除的请求,只能说,更加完善的日志还是需要自己改造的。
参数校验,网上找了一些利用注解做参数校验的例子,这里按照自己的想法写了一个,做实验用的,文件放的位置不是很规范。具体文件在cn.demoframe.test.core.model,这里是注解和一个枚举类,cn.demoframe.test.frame.service.ValidateService是具体的参数校验实现,测试例子在cn.demoframe.test.frame.vmodel.Test。这里的想法就是对于实体类加注解,注解里面有默认的校验,有自定义的校验,可以设置返回值,设置错误描述,错误描述中{0}自动用字段名替换,{1}自动用字段值替换。ValidateService的validate方法根据需要自己添加校验的实现。
关于22位UUID的改造。 33*4/6=22。
关于HttpClient,以前用的版本比较旧,新版本不建议使用DefaultHttpClient,于是改造了一下,用CloseableHttpClient,在设置超时时间的时候,每次设置完都调用bulider.build()初始化一下,因为不知道哪个先调用,就这么简单。调用的方法,有个自定义的超时字符串常量,用来判断是不是超时。
MailToolkit这个工具类是用来处理邮件发送的,实际上可以使用的地方,比如监控日志文件,当文件size大于多少的时候发邮件做通知,人工查看异常过多的原因,还有,比如说,做忘记密码功能,发送邮件的时候。这里都没有。
关于加密工具类,这个后台管理系统,用户的密码是用3des加密后再base64,再md5存储的。还有一个AES加密,这里没用到。
完。