关于Java中注释的澄清

时间:2015-07-23 04:01:24

标签: java servlets annotations

我正在寻找有关Java中的注释的一些说明。 Oracle https://docs.oracle.com/javase/tutorial/java/annotations/的后续页面说“注释对它们注释的代码的操作没有直接影响。”但是我执行了一段这样的代码

@WebServlet("/ServletLifeCycleExample")            
public class ServletLifeCycleExample extends HttpServlet {      
private static final long serialVersionUID = 1L;       
public ServletLifeCycleExample() {       
    super();          
    // TODO Auto-generated constructor stub        
}                           

@WebServlet("/ServletLifeCycleExample")对代码的成功运行非常关键,即使它是一个注释。如果没有该行,代码就会崩溃(ServletLifeCycleExample不会被加载)。

如何解释这个?

2 个答案:

答案 0 :(得分:0)

"更一般地说,注释永远不会改变带注释代码的语义,但是 使其能够通过工具进行特殊处理" 〜Effective Java 2nd Edition

在这种情况下,WebServlet注释具有间接效果,这恰好非常重要。

答案 1 :(得分:-1)

注释标记类并向其添加元数据。当某个引擎(spring / app server / etc)加载带注释的类时,它可以从注释读取数据(或者只是检查是否存在注释)并在传递调用类之前将其更改为open transaction