我有一些插件类型类,我无法保证它们的线程安全和异常处理(假设将来由某个第三人编码)。主应用程序只通过“插件”接口知道这些,并不关心它们在内部做什么。除了由于这些插件类中的一些异常抛出或线程锁定,应用程序无法承受崩溃或冻结。插件类不依赖于主应用程序,只执行主应用程序的一些命令。只有另外两个交互是:
- 当异步任务完成时,调用接口的方法(由主应用程序作为方法 arg 提供)。
- 提供用于配置的 GUI。(主应用程序只是询问并从容器中添加/删除它,仅此
JPanel
而已。)
有什么好的方法可以实现这一目标?我正在考虑一个包装器,其中包含对实际插件方法的同步、try-catch 调用。可以在这里使用 AOP 拦截器吗?在 Java 中对类进行沙箱化的任何其他方式?