Я знаю, Java не предназначен для переопределения метода c (что является одной из причин, почему я никогда не пишу методы c). Тем не менее, я столкнулся с ситуацией, когда весенняя загрузка имеет хорошую функциональность (источник данных с автоматической настройкой), которая работает хорошо, за исключением случаев, когда я переключаюсь в облако (что дает мне нетрадиционный jdb c url - тот, который делает не запускается с jdb c) весенняя загрузка выдает исключение и не запускается. Я отследил причину root ошибки, которую можно найти здесь (где она выдает исключение, когда url не начинается с jdb c). Следовательно, если это возможно, я бы хотел просто переопределить вызов этого метода stati c, чтобы я мог оставить свою кодовую базу в рабочем состоянии. Есть ли (относительно легкий) способ сделать это в java? Если это слишком много работы, я просто определю свою собственную конфигурацию и компонент.
//from enum org.springframework.boot.jdbc.DatabaseDriver (spring boot 2.2.2.release)
public static DatabaseDriver fromJdbcUrl(String url) {
if (StringUtils.hasLength(url)) {
Assert.isTrue(url.startsWith("jdbc"), "URL must start with 'jdbc'"); //<------ error originates from this line
String urlWithoutPrefix = url.substring("jdbc".length()).toLowerCase(Locale.ENGLISH);
for (DatabaseDriver driver : values()) {
for (String urlPrefix : driver.getUrlPrefixes()) {
String prefix = ":" + urlPrefix + ":";
if (driver != UNKNOWN && urlWithoutPrefix.startsWith(prefix)) {
return driver;
}
}
}
}
return UNKNOWN;
}