2017-10-29 176 views

回答

0

从技术上讲,没有任何东西阻止你这样做。你可以在你想要的任何类中使用这个(几乎所有其他的)注释。当然,如果注释可以应用于该类型的Java元素(方法,字段,类)。注释本身不会在您的代码中带来任何逻辑或魔力。你自己检查the source:你会发现他们中的大部分都是数据持有者。

如果没有处理器,注释是没有的。处理可以发生在编译时间运行时间

编译时注解处理可以在编译之前更改源代码(这里简化了一些东西)。它可以引入额外的行为(如空检查)或生成方法(如Lombok's @Getter/@Setter。编译时注释通常会在处理后被删除,但它们不会在运行时出现

您询问的注释是不同种类的 - 显然,资源注入或角色检查不能在编译时完成,因此它们也需要一个处理器才能生效,但该处理器必须存在于正在运行的应用程序的类路径中。通过环境你运行你的应用程序。在你的情况下,这些是Java EE注释,他们需要Java EE兼容应用程序服务器工作。只有当你在一个配置的应用程序服务器中运行你的类,像Glassfish或WebSpere。如果你在Tomcat或Jetty上运行应用程序(它们是网络服务器) - 注解将不起作用,它们将被“省略”,因为不存在处理它们的处理器。

+0

谢谢你的解释关于注释的简要 – manoj

相关问题