Я думал, что настроил весенний боб, чтобы при инициализации контекста веб-приложения запускался метод запуска, но он не работает. Когда я запускаю свое приложение в режиме отладки, я никогда не ударяю точку останова в методе запуска. Вот как я класс создан:Метод старта жизненного цикла весны не работает
@Transactional
@Service
public class ServerStartup implements Lifecycle {
@Autowired
private EmpireService es;
/**
* sets up the server the first time. Should only be called once
*/
private boolean setup() {
[... sets stuff up, saves the empire]
}
/**
* initializes the Empire with its necessary value
*/
@Override
public void start() {
Empire empire = es.getEmpire();
if (empire == null) {
//initialize all data as there is no "empire"
this.setup();
empire = es.getEmpire();
}
Empire.setEmpireGold(empire.getInstanceEmpireGold());
}
/**
* does nothing
*/
@Override
public void stop() {
}
/**
* does nothing
*/
@Override
public boolean isRunning() {
return false;
}
}
Причина мне нужно сделать это, что, когда моя программа запускается, она должна проверить, если карта была построена. Если это не так, его нужно построить. Кроме того, это, по сути, создание кешированного значения Empire Empire.
Если есть лучший, более эффективный способ сделать это, чем реализовать жизненный цикл, я буду открыт для предложений. В противном случае я просто хочу, чтобы это сработало!
Прохладный, работает как шарм. – CorayThan