当我知道失败不可恢复时,在声明式服务的 activate() 方法中失败的最佳方法是什么?具体来说:我的服务可以通过带有元类型属性的 configadmin 进行配置。如果配置无效(例如格式错误的 URL),失败的最佳实践方法是什么?我目前的做法是抛出 IllegalArgumentException。有没有更好的办法?DS主机是否关注异常类型,还是所有异常都被同等对待?
4.2 规范简单地说“如果激活方法抛出异常,SCR 必须使用日志服务记录包含异常的错误消息(如果存在),并且组件配置未激活。” 这向我表明,我可以抛出任何异常,而哪一个并不重要。
我注意到 DS 会在某些情况下重试 activate 方法,例如如果其他依赖项之一发生更改。是否有任何机制可以告诉基础设施不要打扰,除非配置是固定的?还是我应该不担心,只是接受我的激活器会被多调用几次?