java - 如何在运行时确定servlet路径?

标签 java xml servlets path context.xml

我在默认包的目录中有一些.class 文件。每个文件都有一个类,该类有一个@Service注释,方法有一个@Operation注释。

我知道如何在运行时读取注释,但这些文件是 .class 文件,我不知道如何读取它们。 否则我想在 context.xml 文件中的路径中编写每个 Service 注释,并在 web.xml 文件中的 url-pattern 中编写每个操作运行 。我怎样才能做到呢?

最佳答案

如果您将目录中的类放入类路径中,那么您可以通过 ClassLoader API 轻松访问它们:

Class<?> clazz = this.getClass().getClassLoader().loadClass(className);

现在的问题是您不知道类名,并且您基本上想扫描所有类名。因此,您可以使用可用的库之一。例如,Guava提供API通过ClassPath扫描类路径辅助实用程序:

ClassPath classPath = ClassPath.from(this.getClass().getClassLoader());
for (ClassPath.ClassInfo classInfo : classPath.getTopLevelClasses()) {
    Class<?> clazz = classInfo.load();
    // process annotations here
}

关于java - 如何在运行时确定servlet路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512055/

相关文章:

java - 使用 Javers 比较包含 map 的对象

Android:始终显示按钮

xml - Xpath 获取当前节点的值

java - 如何使用 Jetty HTTP 客户端和 MultiPartContentProvider 上传 BufferedImage?

java - 关于 Bitmap 以不同方式转换为 ByteArray 的困惑

java - 如何在具有多个类的数组中转换对象?

xml - 如何获取指定元素之前的下一个 sibling

java - 如何防止在 URL 中显示 JSESSIONID

tomcat - Mahout Grouplens 示例 : How migrate from Jetty to Tomcat

java - 避免间接和冗余的方法调用