-
@Valid & BindingResult查看全部
-
@Min查看全部
-
这个类不错查看全部
-
自定义的异常类查看全部
-
对Controller单元测试的方式: 三个注解为, 1. @RunWith(SpringRunner.class)现在要在测试环境中跑,底层使用的是junit测试工具 2. @SpringBootTest 将启动整个spring工程 3. @AutoConfigureMockMvc 自动注入后,调用mockMvc.perform(MockMvcRequestBuilders.get("[url]")).andExpect(MockMvcResultMatchers.status().isOk());查看全部
-
自定义枚举类: 没有set方法哦,因为不需要set查看全部
-
自定义异常处理类:遮盖部分是getMessage()查看全部
-
业务层直接向外抛异常:查看全部
-
自定义异常类:为什么要继承,因为spring只对RunTimeException进行事务回滚查看全部
-
把请求的返回结果写成工具类:查看全部
-
@Before("log()") public void doBefore(JoinPoint joinPoint) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = (HttpServletRequest) attributes.getRequest(); logger.info("url={}", request.getRequestURL()); logger.info("method={}", request.getMethod()); logger.info("ip={}", request.getRemoteAddr()); logger.info("class_method={}", joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); logger.info("args ={}", joinPoint.getArgs()); logger.info("111111111111111111111111111111"); } @AfterReturning(returning = "object", pointcut = "log()")//获取请求结果的内容 public void doAfterReturn(Object object) { logger.info("response={}", object); }查看全部
-
拦截器的改进写法: 为了避免代码重复书写,定义一个公用方法,@Pointcut注解声明切入点 @Before @After 两注解直接复用该方法切入点 @Aspect @Component public class HttpAspect { private final static Logger logger= LoggerFactory.getLogger(HttpAspect.class); @Pointcut("execution(public * com.example.project.web.CustomerContorller.*(..))") public void log(){ } @Before("log()") public void doBefore(){ logger.info("aaaa"); } @After("log()") public void doAfter(){ logger.info("bbbb"); } }查看全部
-
使用拦截器实例:查看全部
-
使用AOP第一步,添加依赖: spring-boot-starter-aop查看全部
-
AOP 将通用逻辑从业务逻辑中分离出来查看全部
举报
0/150
提交
取消