上海大良网站建设,如何制作淘宝详情页图片,展馆设计论文,图片制作动图在Spring中#xff0c;注解是一种非常使用的工具。
因其强大的功能#xff0c;极大的提高了我们开发效率。
但是当遇到一些特殊业务时#xff0c;框架自有的注解已经不能满足我们的需求了#xff0c;这时我们就可以添加自定义注解来满足我们的业务需求。
我们用interfac…在Spring中注解是一种非常使用的工具。
因其强大的功能极大的提高了我们开发效率。
但是当遇到一些特殊业务时框架自有的注解已经不能满足我们的需求了这时我们就可以添加自定义注解来满足我们的业务需求。
我们用interface来声明这是一个注解类。
另外需要在这个注解类上再添加Target 和 Retention两个注解来声明自定义注解的生效范围和生命周期。
Target ElementType.TYPE说明该注解只能被声明在一个类前。ElementType.FIELD说明该注解只能被声明在一个类的字段前。ElementType.METHOD说明该注解只能被声明在一个类的方法前。ElementType.PARAMETER说明该注解只能被声明在一个方法参数前。ElementType.CONSTRUCTOR说明该注解只能声明在一个类的构造方法前。ElementType.LOCAL_VARIABLE说明该注解只能声明在一个局部变量前。ElementType.ANNOTATION_TYPE说明该注解只能声明在一个注解类型前。ElementType.PACKAGE说明该注解只能声明在一个包名前 Retention: RetentionPolicy.SOURCE: 注解只保留在源文件中 RetentionPolicy.CLASS : 注解保留在class文件中在加载到JVM虚拟机时丢弃RetentionPolicy.RUNTIME: 注解保留在程序运行期间此时可以通过反射获得定义在某个类上的所有注解。
来看一段自定义注解的代码
Target({ElementType.METHOD})
Retention(RetentionPolicy.RUNTIME)
public interface LockMethod {long waitTime() default 60L ;long leaseTime() default 60*1000L ;/*** 锁key* return*/String[] lockKeyInfo() ;/*** 锁参数下标列表对应下标的参数值会作为锁Key的一部分* return*/int[] lockKeyArgIndexList() default {};
}
使用自定义的注解只需要在方法上面加上LockMethod(lockKeyInfo Constants.DAY_END_JOB,waitTime WAIT_TIME,leaseTime LEASE_TIME)public void test() {
}
这只是简单地定义了一个注解但是实际的开发工作中自定义注解一般搭配Aop使用
比如设定加了自定义注解的方法执行前要做什么执行后要做什么具体如何使用也要根据具体的业务场景来实现~~