0%

重要方法

/*获取参数的值数组*/
Object[] args = point.getArgs();                                    //  [1] 参数的值

/*获取目标对象(被加强的对象)*/
Object target = point.getTarget();

/*获取signature 该注解作用在方法上,强转为 MethodSignature*/
MethodSignature signature = (MethodSignature) point.getSignature();

/*方法名*/
String signatureName = signature.getName();                         //  findById

/*参数名称数组(与args参数值意义对应)*/
String[] parameterNames = signature.getParameterNames();            //  [i] 参数名称

/*获取执行的方法对应Method对象*/
Method method = signature.getMethod();                              
//  public void com.jueee.test.service.UserService.findById(int)

/*获取返回值类型*/
Class returnType = signature.getReturnType();                       //  void

/*获取方法上的注解*/
OperationLog operationLog = method.getDeclaredAnnotation(OperationLog.class);

request / response

// 获取request/response(ThreadLocal模式)
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletRequest request = servletRequestAttributes.getRequest();
HttpServletResponse response = servletRequestAttributes.getResponse();
HttpSession session = request.getSession();

swagger 是一个很使用的工具,但正常使用时,我们的接口需要登陆才能访问的。即登陆时,要传一个登陆后的 token 才能访问的。

那这个怎么设置,才可以让所有接口都允许登陆后访问呢?

阅读全文 »

IOC 控制反转

IOC—Inversion of Control,即 “控制反转”,不是什么技术,而是一种设计思想。

在 Java 开发中,IOC 意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

所谓 IOC,对于 Spring 框架来说,就是由 Spring 来负责控制对象的生命周期和对象间的关系。

Spring 所倡导的开发方式就是如此,所有的类都会在 Spring 容器中登记。所有的类的创建、销毁都由 Spring 来控制,也就是说控制对象生存周期的不再是引用它的对象,而是 Spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被 Spring 控制,所以这叫控制反转。

阅读全文 »

Spring AOP

AOP 即 Aspect Oriented Program 面向切面编程

首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。

  • 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务
  • 所谓的周边功能,比如性能统计,日志,事务管理等等

周边功能在 Spring 的面向切面编程AOP思想里,即被定义为切面。

在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发,然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP。

阅读全文 »