202111-14 使用spring boot通过自定义注解打印所需日志 springboot自定义注解打印日志在实际项目中可能需要监控每个接口的请求时间以及请求参数等相关信息,那么此时我们想到的就是两种实现方式,一种是通过拦截器实现,另一种则通过AOP自定义注解实现。本文介绍自定义注解实现方式自定义注解,四个元注解这次就不解释了。@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceWebLog{/***日志信息描述*/Stringdescription()defaul... 继续阅读 >
202108-12 自定义注解和springAOP捕获Service层异常,并处理自定义异常操作 一自定义异常/***自定义参数为null异常*/publicclassNoParamsExceptionextendsException{//用详细信息指定一个异常publicNoParamsException(Stringmessage){super(message);}//用指定的详细信息和原因构造一个新的异常publicNoParamsException(Stringmessage,Throwablecause){super(message,cause);}//用指定原因构造一个新的异常publicNoParamsException(Throwa... 继续阅读 >
202104-07 Spring AOP 实现自定义注解的示例 自工作后,除了一些小项目配置事务使用过AOP,真正自己写AOP机会很少,另一方面在工作后还没有写过自定义注解,一直很好奇注解是怎么实现他想要的功能的,刚好做项目的时候,经常有人日志打得不够全,经常出现问题了,查日志的才发现忘记打了,所以趁此机会,搜了一些资料,用AOP+自定义注解,实现请求拦截,自定义打日志,玩一下这两个东西,以下是自己完的一个小例子,也供需要的同学参考。1.注解如下:packagecn.bridge... 继续阅读 >
202103-30 Java 自定义注解的魅力 注解是什么?①、引用自维基百科的内容:Java注解又称Java标注,是JDK5.0版本开始支持加入源代码的特殊语法元数据。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容,在运行时可以获取到标注内容。当然它也支持自定义Java标注。②、引用自网络的内容:Java注解是在JDK5时引入的新特性... 继续阅读 >
202101-21 在Spring 中使用@Aspect 控制自定义注解的操作 Spring中使用@Aspect控制自定义注解看这篇介绍@Aspect1.定义系统日志注解类@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceSysLog{Stringvalue()default"";}2.定义切面处理类packagecom.kxs.common.aspect;importcom.google.gson.Gson;importcom.kxs.common.annotation.SysLog;importcom.kxs.common.utils.HttpContextUtils;importcom.kxs.common.utils.IPUtils;import... 继续阅读 >
202012-29 SpringBoot 拦截器和自定义注解判断请求是否合法 应用场景举例:当不同身份的用户请求一个接口时,用来校验用户某些身份,这样可以对单个字段数据进行精确权限控制,具体看代码注释自定义注解/***对比请求的用户身份是否符合*@authorliuyalong*@date2020/9/2516:03*/@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)public@interfaceCompareUser{/***Thenameoftherequestparametertobind.*/@AliasFor("name")Stringvalue()defa... 继续阅读 >
202011-22 SpringBoot基于自定义注解实现切面编程 1、相关依赖包<!--aop依赖包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.8.6</version></dependency>2、定义切面类packagecom.bz.aspect;importcom.bz.service.SysLogOperationService;importorg.a... 继续阅读 >
202011-13 SpringBoot中自定义注解实现参数非空校验的示例 前言由于刚写项目不久,在写web后台接口时,经常会对前端传入的参数进行一些规则校验,如果入参较少还好,一旦需要校验的参数比较多,那么使用if校验会带来大量的重复性工作,并且代码看起来会非常冗余,所以我首先想到能否通过一些手段改进这点,让Controller层减少参数校验的冗余代码,提升代码的可阅读性。经过阅读他人的代码,发现使用annotation注解是一个比较方便的手段,SpringBoot自带的@RequestParam注解只会... 继续阅读 >
202010-10 Spring-基于Spring使用自定义注解及Aspect实现数据库切换操作 实现思路重写Spring的AbstractRoutingDataSource抽象类的determineCurrentLookupKey方法。我们来看下Spring-AbstractRoutingDataSource的源码AbstractRoutingDataSource获取数据源之前会先调用determineCurrentLookupKey方法查找当前的lookupKey。ObjectlookupKey=determineCurrentLookupKey();DataSourcedataSource=this.resolvedDataSources.get(lookupKey);.......returndataSource;lookupKey为数据源标识,因此通过重写... 继续阅读 >
202010-10 谈谈Java中自定义注解及使用场景 Java自定义注解一般使用场景为:自定义注解+拦截器或者AOP,使用自定义注解来自己设计框架,使得代码看起来非常优雅。本文将先从自定义注解的基础概念说起,然后开始实战,写小段代码实现自定义注解+拦截器,自定义注解+AOP。一.什么是注解(Annotation)Java注解是什么,以下是引用自维基百科的内容Java注解又称Java标注,是JDK5.0版本开始支持加入源代码的特殊语法元数据。Java语言中的类、方法、变量、参数和包等都可以被标注。... 继续阅读 >