相关疑难解决方法(0)

在运行时扫描Java注释

搜索带注释类的整个类路径的最佳方法是什么?

我正在做一个库,我想允许用户注释他们的类,所以当Web应用程序启动时,我需要扫描整个类路径以获取某些注释.

你知道一个库或Java工具吗?

编辑:我正在考虑类似Java EE 5 Web服务或EJB的新功能.您使用@WebServiceor 注释您的类,@EJB并且系统在加载时查找这些类,以便远程访问它们.

java annotations classloader

243
推荐指数
10
解决办法
16万
查看次数

获取Java中注释参数的值

所以我有一个代码:

@Path("/foo")
public class Hello {

@GET
@Produces("text/html")
public String getHtml(@Context Request request, @Context HttpServletRequest requestss){
  ...
}
Run Code Online (Sandbox Code Playgroud)

我正在使用AspectJ来捕获对getHtml方法的所有调用.我想获得传递的参数@Produces,并@Path在我的建议,即"/foo""text/html"在这种情况下.我怎么能用反射来做呢?

java reflection aspectj

30
推荐指数
2
解决办法
5万
查看次数

如何从@ComponentScan包获取接口列表

我想实现类似于Spring Data的东西.

开发人员可以定义一些接口,向接口添加自定义注释以标记它们(我的代码将为接口创建代理实例)并通过@Autowire将它们用于必要的服务.

在spring初始化期间,我需要获取所有接口的列表(正确注释)<为接口创建动态代理并将它们注入到必要的位置.

代理创建,创建bean注入很好.现在的问题是:

如何查找所有接口的列表?

它们可以放在任何包装中(或者甚至放在一个单独的罐子里)并且有任何名称.扫描类路径上存在的所有类需要太多时间.

我找到了问题,但它需要基础包启动.

试过一个基于思考的解决方案,但它再次需要基础包或者从root开始需要非常大的时间来扫描所有可用的类.

Reflections reflections = new Reflections("...");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(<annotation>);
Run Code Online (Sandbox Code Playgroud)

所以我需要一个完整的基础包列表Spring扫描在包中找到我的接口(必须要快得多).

信息在SpringContext中绝对可用.我试图调试并看看basePackages []是如何初始化的,但是有很多私有类/方法用于初始化,我只是没有看到如何从ApplicationContext正确访问basePackages.

java spring spring-boot component-scan

7
推荐指数
1
解决办法
2271
查看次数