1. 什么是注解
注解和XML文件都是常用的,对web项目进行配置性描述的方式。
举个最简单的例子,对于一个Servlet,比如LoginServlet,采用如下方式:
@WebServlet(urlPatterns="/Login")
public class LoginServlet extends HttpServlet {}
1
2
用了上面的@WebServlet注解后,无需在web.xml再进行LoginServlet相关的 配置,即可通过http://localhost:8080/项目名/Login访问到LoginServlet。
由此可见,注解有点类似于xml配置文件,可以添加一些信息,但是又不影响Java类正常运行。注解其实就是为我们的项目提供纯Java代码提供不了的信息的。
2. 注解的优势
那么即然都有xml配置文件这样的技术,为啥还要注解呢,感觉在干净的Java代码中添加@xxx后显得不是那么舒爽了呢。
好的,我们来对比下注解和XML,还是以LoginServlet的使用为例:
注解的话,我们需要在LoginServlet类添加:
@WebServlet(urlPatterns="/Login")
1
XML配置文件的话,我们需要在web.xml中添加:
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
1
2
3
4
5
6
7
8
毫无疑问,从代码量上讲注解好像占了些优势,从打开页面数上,注解只需要关注LoginServlet一个类的代码,XML方式在编辑完LoginServlet类之后还要去修改XML文件。
这就是注解的优势哦,因为它本身就应用在类、方法、属性等元素上,所以不用再进一步描述关联元素。而且由于注解后面紧跟被注解元素,所以看起来也是一目了然,哪怕没接触过这个业务逻辑,也能注意到或者很快的去了解到。
3. 注解的种类
Java中的注解分两类内置注解和自定义注解,很简单,就像JDK自带的类和我们的自定义类一样的道理。
然后内置注解又分两类,一类是定义在java.lang中的常用注解,第二类是新建自定义注解使会用到的注解。其实第二类也是跟自定义注解相关的,后面会单独拿出一篇来讲自定义注解。现在重点说说常用的内置注解:
1,@Override,该注解用来修饰方法,表示该方法覆盖父类方法。当然如果没有覆盖,就会报错。
2,@Deprecated,使用该注解修饰的元素,会有警告信息。自定义类时对一些属性或方法采用该注解可以起到提示作用,因为用的时候代码会有道删除线。请看下图,是不是很熟悉。
3,@SuppressWarnings,关闭编译器警告,如果觉得警告烦人,就用它吧。