前两天想做个web项目的监控,想放在一个jar包中,其他项目引用后就可以使用。
在网上收了一下,一共有三种方法,
1,利用servlet3的新特性,资源携带。
就是在生成jar项目时就把相关资源存放到 /resources/META-INF/resources下,如图:
这样,就可以在java的web项目中引用/resources/META-INF/resources这里的资源,就像把这里的资源放到了/webroot下了一样可以直接使用。
使用有两个需要注意的地方。
1: 如果,web项目中和jar项目中携带的资源路径相同,这会优先使用web项目的。
2: 如果,web项目中使用和引用的多个这种jar项目并携带,且资源路径相同,/如访问的路径都是/webjar/img/1.png,我的测试结果是,谁的项目名称在标准排序中靠前使用谁的(不靠谱,使用者自己再查查资料了)。
因为这个测试只做了两次。
webjar和webjar2都携带的/webjar/img/1.png时,测试得到的是webjar里的资源; webjar和awebjar2都携带的/webjar/img/1.png时,测试得到的是awebjar2里的资源。所以建议使用时,都把资源放在一个自己jar名称的专用文件夹下,这样其他项目一般不会使用这名称。