java注解,有什么用?
来源:互联网 发布:mac 虚拟机 win10 编辑:程序博客网 时间:2024/04/29 21:15
一、java注解有什么用?
注解用的最广泛的,就是spring mvc了,那么就以spring mvc的@RequestMapping 注解为例:
要明白@RequestMapping的作用,或者说工作原理。就要首先明白spring mvc的架构:
---我的总结:
1DispatcherServlet是核心,它其实就是一个servlet(即一个java类),配置在web.xml中。它是spring mvc的“主类”,其他模块(如controller、viewResolver等)的执行,都是在DispatcherServlet这个类执行的时候调用的。
2handlermapping其实就是一个url到controller(即action)的xml配置文件,spring mvc也提供注解的方式来替代xml配置文件。
3handlermapping是url和controller的映射,明明可以叫controllermapping嘛,为什么叫handler不叫controller,很奇怪。
然后看,什么是注解?有什么作用?
http://www.importnew.com/10294.html注解的用处:
1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@param @return 等
2、跟踪代码依赖性,实现替代配置文件功能。比如Dagger 2依赖注入,未来java开发,将大量注解配置,具有很大用处;
3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
--------关于注解,最好的文章:
http://blog.csdn.net/wangyangzhizhou/article/details/51698638
-----总结:
1注解是java类和方法的元数据,它不涉及任何业务操作。
2即然不涉及任何业务操作,为什么@override注解,如果父类中没有该方法,会报错?这不就是进行业务操作了吗?
3注解,从调用上来,也是一个java类,只是这个java类的定义有点奇怪。
调用:
Test t = AnnotationTest.class.getAnnotation(Test.class);
定义:
@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface TestMethod { String value();}
5注解即然是java类和方法的元数据,那么,注解用来干什么就很清楚了,即就起到替代配置文件的作用。注解就是为了替代xml配置文件,才诞生的。
然后再看@requestmapping这个注解:
http://www.cnblogs.com/caoyc/p/5635173.html
执行原理:
1程序员给某java类或者方法,设置注解。
2浏览器发起一个请求如下:http://127.0.0.1:8080/testProject/example.action。
3dispatcherservlet(参考上文spring mvc的架构,dispatcherservlet是从头到尾执行的主类)接收到请求,挨个class去执行他们的注解:
XXX.class.getAnnotation(@requestmapping.class);
二、怎么自定义注解,即自己动手写注解?
http://www.cnblogs.com/pepcod/archive/2013/02/16/2913474.html- java注解,有什么用?
- java注解,@,注解有什么用?
- java注解,@,注解有什么用?
- java注解,@,注解有什么用
- java自定义注解有什么作用?
- java 自定义的注解有什么作用
- spring注解@service("service")括号中的service有什么用
- spring注解@service("service")括号中的service有什么用
- spring注解@service("service")括号中的service有什么用
- spring注解@service("service")括号中的service有什么用
- spring注解@service("service")括号中的service有什么用
- Java千百问_03基础语法(020)_注解、注释有什么区别
- java中的private到底有什么用
- Java池有什么用的?
- java updateUI() 有什么用?怎样用
- Java 多线程(1) 多线程有什么用?
- java 类名.class有什么用
- java.lang.reflect.Array有什么用
- 【高性能Mysql】读书笔记
- STM32七彩色带
- 爱开源的微软是如何击败 Facebook、Google 成为 GitHub No.1 的?
- Volley原理分析
- Ubuntu下安装WeChat
- java注解,有什么用?
- 常用的Mysql数据库操作语句大全
- Spring的IOC原理[通俗解释一下]
- java容器之四_stack
- CSS Modules 用法教程
- 在一个tomcat上配置多个相同的应用,或者是用同一个端口上放置多个应用
- mac显示隐藏文件
- Android 压缩文件
- 总结 React 组件的三种写法 及最佳实践 [涨经验]