-
@Valid
查看全部 -
代码克隆及切换分支
查看全部 -
git上的的代码
查看全部 -
前面基础课程
查看全部 -
afterReruring查看全部
-
mvn clean ackage -Dmaven.test.ski=true
查看全部 -
AutoConfigureMockMvc
查看全部 -
使用日志:
在HttpAspect中,注意引进的是org.slf4j包内的Logger类,它是Spring自带的日志框架,它的底层实现是logback
private final static Logger logger=LoggerFactory.getLogger(HttpAspect.class);
查看全部 -
package com.imooc.aspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* Aspect切面类
* 主要是在切面类相互之前写Logger
*
* @Author:Liyoh-Frank Create by IntelliJ IDEA
* @Date: 2018/7/6 16:46
* @LoveAndThanks: Misty
*/
@Aspect
@Component
public class HttpAspect {
private final static Logger LOGGER = LoggerFactory.getLogger(HttpAspect.class);
//定义一个log,定义个切点--这样在下面就不用写一堆SB代码了
@Pointcut("execution(public * com.imooc.controller.GirlController.*(..))")
public void log() {
}
/**
* JoinPoint对象封装了SpringAop中切面方法的信息,
* 在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的JoinPoint对象.
*
* @param joinPoint
*/
//Before记录Http请求
@Before("log()")
public void doBefore(JoinPoint joinPoint) {//JoinPoint可以获取方法名和方法参数
LOGGER.info("Before()");
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//url-请求的路径
LOGGER.info("url={}", request.getRequestURL());
//method 请求的方式
LOGGER.info("method={}", request.getMethod());
//ip 客户端的ip
LOGGER.info("ip={}", request.getRemoteAddr());
//请求的哪一个类的方法
LOGGER.info("class_method={}", joinPoint.getSignature().getDeclaringType() +
"." + joinPoint.getSignature().getName());
//类方法的参数
LOGGER.info("args={}", joinPoint.getArgs());
}
@After("log()")
public void doAfter() {
LOGGER.info("After()");
}
@AfterReturning(pointcut = "log()", returning = "object")
public void doAfterReturning(Object object) {
LOGGER.info("response={}", object);
}
}查看全部 -
Controller单元测试:使用@AutoConfigureMockMvc注解,注入MockMvc类。搭配MockMvc属性的perform方法,使用MockMvcRequestBuilders模拟get、post等请求,检查响应是否符合预期。
在项目打包发布时,springboot会自动执行单元测试用例,并在控制台打印出执行结果。
查看全部 -
快速为方法建立单元测试:方法右键 -> Go To -> Test
查看全部 -
(1)@RunWith(SpringRunner.class) 表示此类在测试环境运行
(2)@SpringBootTest注解表示将启动整个spring工程
查看全部 -
Spring默认的事务管理对于抛出的异常,RuntimeException才会回滚,如果是Exception则不会回滚。
查看全部 -
日志记录的方式,{ } 作为占位符,方法和 String.format 类似,第二个参数的值会放到占位符中去。
查看全部 -
AOP注解使用的关于 @Pointcut
查看全部
举报