建立日志表和对应mapper
CREATE TABLE `systemlog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`optime` datetime DEFAULT NULL,
`ip` varchar(20) DEFAULT NULL,
`function` varchar(255) DEFAULT NULL,
`params` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建日志切面
com.itlike.aspect.SystemAspect
添加切面
<!-- aop配置 日志配置 -->
<bean id="SystemAspect" class="com.itlike.utils.SystemAspect"></bean>
<aop:config>
<aop:pointcut expression="execution(* com.itlike.service.*.*(..))"
id="servicePoint" />
<aop:aspect ref="SystemAspect">
<aop:after method="writeLog" pointcut-ref="servicePoint"/>
</aop:aspect>
</aop:config>
添加拦截器,记录当前请求的ip
创建本地线程变量
创建拦截器把当前请求写入到本地线程变量
配置拦截器拦截所有请求
在切面中获取ip
对于RequestUtil中的本地线程如何获取当前线程的request可以看看源码,也就是里边的set和get方法