我无法理解为什么要使用 context.xml 文件来声明资源,在我的例子中是数据库连接池。希望我在以下反对使用 context.xml 的论点中得到了我的事实
据我所知,/META-INF/context.xml 中声明的资源仅在上下文中可用,因此没有理由这样做来共享资源。
以这种方式声明连接池资源会创建对容器类加载器的依赖,因此如果我这样做并且例如希望更改我的数据库驱动程序,我必须重新启动容器,而不仅仅是我的上下文。
我还创建了对 JNDI 等容器事物的依赖,这使得独立测试变得更加棘手。
最后,我必须跳过构建时的障碍,例如在测试资源和生产资源之间切换资源。
这些问题都不是不可克服的,但是在纸面上创建一个连接池并将其挂接到我的上下文范围内似乎要简单得多。
我想知道在什么情况下 context.xml 文件是正确的答案?