gpt4 book ai didi

java - JVM什么时候加载注解类

转载 作者:搜寻专家 更新时间:2023-10-31 20:00:47 25 4
gpt4 key购买 nike

我发现如果我使用注解,程序不会抛出ClassNotFoundException

class A {
@Transactional
public void insert() {
//insert something
}
}

Tomcat 在没有 javaee-api-7.0.jar 的情况下成功启动,其中包含类 javax.transaction.Transactional

这让我很困惑,JVM 不应该抛出一个ClassNotFoundException 加载类 A 时?

最佳答案

不,不应该。注释只是元数据。预期包含注释的字节码可以正常运行,即使注释不在类路径中也是如此。当然,如果某些库试图实际访问和使用不在类路径中的注释,那是行不通的。

这是明确支持的,例如

  • 添加由字节码静态分析工具(如 FindBugs)使用的注释,这些注释在生产环境中运行代码时无用
  • 能够在客户端中使用分离的 JPA 实体,即使服务器是唯一实际使用 JPA 注释的实体

关于java - JVM什么时候加载注解类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35474962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com