java在web应用程序中放置ServiceLoader配置文件的位置
我正在Eclipse中编写一个web应用程序
我试图使用ServiceLoader类来加载一些插件
ServiceLoader的文档说我需要在META-INF/services中放置一个文件
我已经将该文件放在WebContent/META-INF/service文件夹中,但是当我通过Eclipse运行JUnit测试时,它找不到任何插件
这是文件的正确位置吗
此外,如何从ServiceLoader中获取更多调试信息,例如它正在搜索文件的文件夹
# 1 楼答案
META-INF/services应该位于用于定位插件的类加载器的类路径中的jar文件或资源目录的根目录下
如果您有一个web应用程序,那么您可以有如下目录结构:
但理想的方法是将其保存在插件的jar文件中。例如,如果你有一个绑定为
WEB-INF/lib/myplugin.jar
的插件,而你的插件类是com.example.plugin.MyPlugin
,那么jar应该有一个结构:完成后,可以使用web应用程序的类加载器获得服务加载器