java注解(二)Annotation使用案例
2016-05-11 11:53
477 查看
Annotations仅仅是元数据,和业务逻辑无关。如果Annotations不包含业务逻辑,那么必须有人来实现这些逻辑。元数据的用户来做这个事情。Annotations仅仅提供它定义的属性(类/方法/包/域)的信息。Annotations的用户(同样是一些代码)来读取这些信息并实现必要的逻辑
以Rest请求为例
1、 建立一个注解:请求必须先登录
2、在业务类上,使用注解
3、 发起请求时,过滤器判断注解
以Rest请求为例
1、 建立一个注解:请求必须先登录
@Target({ ElementType.TYPE,ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface LoginValidate { /** * 标识被调用的类,方法是否需要登录才能访问,false:不需要登录即可访问,true:需要登录才可方法, * * @return */ booleanlogin() default true; }</span>
2、在业务类上,使用注解
@Component @Path("/test") @Produces(value = MediaTypes.JSON_UTF_8) public class TestController { @POST @Path("/test") @LoginValidate public Object test(@FormParam("passport") String passport) { //做一些增删改查 } }
3、 发起请求时,过滤器判断注解
@Component public class LoginValidateRequestFilterimplements ContainerRequestFilter { @Override @SuppressWarnings("rawtypes") publicvoid filter(ContainerRequestContext requestContext) throws IOException { UriInfoui = requestContext.getUriInfo(); ResourceInfori = (ResourceInfo) ui; Classclazz = ri.getResourceClass(); if(clazz == null) { logger.error("RequestResourceClass not found!"); return; } LoginValidatevalidate = AnnotationUtils.findAnnotation(clazz, LoginValidate.class); if(validate !=null && validate.login() == true) { //判断是否登录 } } }
相关文章推荐
- 实例解析Java设计模式编程中的适配器模式使用
- Eclipse安装及其配置方法
- 2.1.1 JDK安装与环境变量配置(Win版)
- 解决 Eclipse 导入项目后 Maven Dependencies missing jar 问题
- Spring项目用junit 时出现org.junit.runners.BlockJUnit4ClassRunner cannot be resolved
- java二维码开发
- eclipse自动补全的设置
- java线程深度解析(四)——并发模型(Master-Worker)
- Eclipse 快捷键总结
- FBReader导入eclipse 和Androidstudio相关问题
- Java实现冒泡排序
- Java删除文件夹和文件
- java swing awt绘制一个图片查看器 图片显示 图片控件
- 加载依赖的jar包在命令行编译和运行java文件
- Java 匿名内部类
- Julian date(儒略日) java如何做转换
- java 之匿名内部类
- java初始化的执行顺序
- 简单选择排序java版
- java枚举使用详解