У меня есть приложение для весенней загрузки, которое я создаю, и в начале мне нужно проверить некоторые системные файлы и подготовить некоторые пулы базы данных, используя информацию, которую приложение находит там. Обычно я включаю это в основной метод аннотированного класса @SpringBootApplication
, однако, когда я развертываю свое приложение в виде файла WAR на внешнем сервере Tomcat, этот основной класс не запускается. Я проверил, что у вас должно быть в этом основном классе, и теперь мой основной класс приложения выглядит так:
package com.companyname.projectname;
import com.companyname.projectname.database.DatabasePoolManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer {
private static final Logger logger = LoggerFactory.getLogger(WebApplication.class);
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(WebApplication.class, args);
DatabasePoolManager dpm = applicationContext.getBean(DatabasePoolManager.class);
dpm.setUpPools();
logger.error("\n\nIS ANYBODY OUT THERE?\n\n");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
logger.error("\n\nIS ANYBODY OUT THERE? (But in the configure method)\n\n");
return builder.sources(WebApplication.class);
}
}
Это отличается от моей первоначальной настройки из-за extends
и переопределение configure
.
До сих пор это все работало нормально с моей Intellij IDE, но после перемещения и развертывания на сервере Tomcat ни одно из сообщений журнала не появляется. Приложение все еще работает, но в нем явно отсутствуют некоторые настройки, которые предоставляют его функциональность (подключения к базам данных). Как бы я go запустил некоторый установочный код при запуске приложения, когда я развернул это приложение в виде файла WAR?