在Android中实现类似Spring的软件包扫描

在Android中实现类似Spring的软件包扫描,第1张

在Android中实现类似Spring的软件包扫描

我同意乔普·艾根(Joop
Eggen)的观点,并认为他的方法是一个好的方法。在Android中,我尝试避免使用通常的Web应用程序功能,这些功能会导致应用程序长时间启动。我不使用反射或包裹扫描。

但是,如果您想....如果我正确理解,则需要为一个类添加注释。除了使用批注之外,您还可以使用标记器界面(以便拥有更多的可能性)。

1)看
  • 注释:Java自定义注释和动态加载
    在问题中有一个实现可以回答您的问题。

  • 注释:在运行时扫描Java注释

  • 接口:查找实现接口的Java类
  • 接口:与Java 1.5中的ServiceLoader相似吗?
  • 接口:如何以Java编程方式获取接口的所有实现的列表?
  • 接口:由于该方法昂贵,因此ServiceLoader可能会在执行时间和舒适性之间做出折衷,因为它仅加载服务文件中给定的类。另一方面,如果包中仅包含具有特定接口的类,则ServiceLoader不会那么快。
2)AndroidAnnotations

我更喜欢AndroidAnnotations的工作方式(最好是集成AndroidAnnotations):它会自动添加一个额外的编译步骤,使用标准的Java
Annotation处理工具生成源代码。因此,您无需执行运行时扫描,而是根据编译时生成的注释执行代码。

我认为Bean /
EBean注释可以为您工作(仅单个类):https
:
//github.com/excilys/androidannotations/wiki/Enhance%20custom%20classes

扫描功能不可用,请参见此线程

3)编写自己的注释处理器
  • 请参阅APT(注释处理工具)。想法是生成一个静态函数,该函数返回带注释的类的列表,因此不需要类扫描。
  • 一个很好的资源是http://javadude.com/articles/annotations/index.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5016856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存