(办公)springboot配置aop处理请求.
最近项目用到springboot,就是需要配置一些东西.比如用aop处理请求.方法前通知获取url,method,ip,类方法,参数,方法后通知,返回参数,而且还可以记录一下日志.下面是操作的代码.
package com.imooc.shoptest001.aspect; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /**
* 刘运通
* 20190324
* 作用实现拦截http请求.
*/
@Aspect
@Component //把这个文件引入到Spring容器里面去.
public class HttpAspect { @Pointcut("execution(public * com.imooc.shoptest001.controller.UserController.*(..))")
public void log(){ }
/**
* 拦截那些方法.请求前.
* JoinPoint 获取类方法和类名对象.
*/
@Before("log()")
public void logBefore(JoinPoint joinPoint){
System.out.println("拦截了getInfo方法");
//url,method,ip,类方法,参数.
//SpringBoot通过RequestContextHolder获取HttpRequest和HttpResponse
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
//javax.servlet.http.HttpServletRequest
HttpServletRequest request = attributes.getRequest();
System.out.println("url"+request.getRequestURL());
System.out.println("method"+request.getMethod());
System.out.println("ip"+request.getRemoteAddr());
//类方法.
System.out.println("类方法"+joinPoint.getSignature().getDeclaringTypeName()
+"."+ joinPoint.getSignature().getName()
);
//参数:
System.out.println("类方法"+joinPoint.getArgs());
}
/**
* 拦截那些方法.请求后.
*/
@After("log()")
public void logAfter(){
System.out.println("拦截了getInfo方法.之后");
} /**
* 返回参数.
* @param object 入参
*/
@AfterReturning(returning = "object",pointcut = "log()")
public void doAfterReturning(Object object){
System.out.println(object);
} }
(办公)springboot配置aop处理请求.的更多相关文章
- Spring-boot 配置Aop获取controller里的request中的参数以及其返回值
首先在你的Maven的pom文件里加入aop的依赖: <dependency> <groupId>org.springframework.boot</groupId> ...
- SpringBoot配置Aop笔记【例子】
众所周知,spring最核心的两个功能是aop和ioc,即面向切面,控制反转.这里我们探讨一下如何使用spring aop. 1.何为aop aop全称Aspect Oriented Programm ...
- SpringBoot 配置 AOP 打印日志
在项目开发中,日志系统是必不可少的,用AOP在Web的请求做入参和出参的参数打印,同时对异常进行日志打印,避免重复的手写日志,完整案例见文末源码. 一.Spring AOP AOP(Aspect-Or ...
- (办公)springboot配置全局异常
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常 ...
- (办公)springboot配置表单验证@Valid
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下. SpringBoot提 ...
- SpringBoot配置Aop demo
1. Demo部分 package com.example.demo.controller; import org.springframework.web.bind.annotation.Reques ...
- SpringBoot ------ 使用AOP处理请求
一.AOP统一处理请求日志 1.spring的两大核心:AOP , IOC 2.面向对象OOP关注的是将需求功能垂直,划分为不同的,并且相对独立的, 会封装成良好的类,并且类有属于自己的行为. ...
- SpringBoot使用AOP获取请求参数
最近试了下拦截controller方法查看请求参数,方式如下: package com.*.aop; import com.alibaba.fastjson.JSON; import com.alib ...
- 在SpringBoot中配置aop
前言 aop作为spring的一个强大的功能经常被使用,aop的应用场景有很多,但是实际的应用还是需要根据实际的业务来进行实现.这里就以打印日志作为例子,在SpringBoot中配置aop 已经加入我 ...
随机推荐
- Jms的MessageListener中的Jms事务
摘要 一般来说,如果为JmsTemplate做了事务配置,那么它将会与当前线程的数据库事务挂钩,并且仅在数据库事务的afterCommit动作中提交. 但是,如果一个MessageListener在接 ...
- PAT1088:Rational Arithmetic
1088. Rational Arithmetic (20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue F ...
- 利用Django进行Web开发
Web就是用来表示Internet主机上供外界访问的资源的.网页也统称为web资源.Internet上供外界访问的Web资源主要分为如下两类: 静态web资源:指web页面中供人们浏览的数据始终是不变 ...
- Android开发的一些总结
Android开发与Java区别 1.执行入口点 AndroidMainfest.xml文件中的intent-filter 2.基于组件 Activity(Fragment), Service, Br ...
- elasticsearch x-pack
elasticsearch-plugin.bat install x-pack D:\elasticsearch-5.5.3\bin>elasticsearch-plugin.bat insta ...
- AJAX from S3 CORS fails on preflight OPTIONS with 403
解决办法: 将 <!-- Sample policy --> <CORSConfiguration> <CORSRule> <AllowedOrigin> ...
- dva/docs/GettingStarted.md
进入目录安装依赖: npm i 或者 yarn install开发: npm run dev npm install 太慢,试试yarn吧.建议用npm install yarn -g进行安装. Co ...
- Javascript 设计模式 单例
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/30490955 一直很喜欢Js,,,今天写一个Js的单例模式实现以及用法. 1.单 ...
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39269193,本文出自:[张鸿洋的博客] 1.概述 首先我们来吹吹牛,什么叫Io ...
- java中读取配置文件ResourceBundle和Properties两种方式比较
今天在开发的时候,需要把一些信息放到配置文件中,方便后续的修改,注意到用的是ResourceBundle读取配置文件的方式,记得之前也见过使用Properties的方式,就比较好奇这两种方式的区别,网 ...