我有一个库,该库通常作为组件内置在第三方软件中。万一它在Spring中运行,还有另外一个库增加了对主库的Spring支持,在该库中,诸如数据库连接之类的某些处理方式有所不同。
我想做的是确保当主库作为基于Spring的应用程序的一部分运行时,帮助程序库也存在。因此,我需要以某种方式检测运行该库的应用程序是否基于Spring。什么是理智的方法?
我有一个可行的想法,那就是检查Spring核心的一部分是否存在,像这样:
boolean isSpringApplication = false;
boolean isSpringSupportPresent = false;
// Check Spring
try {
Class.forName("org.springframework.some.core.Class");
isSpringApplication = true;
} catch(ClassNotFoundException e) {
// This is fine
}
// Check Spring Support Lib
try {
Class.forName("org.mylibrary.spring.support.Class");
isSpringSupportPresent = true;
} catch(ClassNotFoundException e) {
// This is fine
}
if (isSpringApplication && !isSpringSupportPresent) {
LOGGER.error("Application is running within Spring but the Spring Support Library is not present.");
}
这是解决问题的合理方法吗?如果是这样,最好的Spring类是什么?